- 浏览: 579860 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
1.setter
注入
:
beans.xml:
<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the DAOs in
- dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
-->
< beans xmlns ="http://www.springframework.org/schema/beans"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop ="http://www.springframework.org/schema/aop"
xmlns:tx ="http://www.springframework.org/schema/tx"
xsi:schemaLocation ="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" >
< bean name ="userDao" class ="com.linying.dao.UserDao" ></ bean >
< bean name ="userDomain" class ="com.linying.domain.User" ></ bean >
< bean name ="userAction" class ="com.linying.service.UserAction" >
< property name ="user" ref ="userDomain" ></ property >
< property name ="userDao" ref ="userDao" ></ property >
</ bean >
</ beans >
User.java:
/**
* 领域对象
*
* @author Ying-er
* @time 2010-6-20 上午10:01:05
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class User {
private int id;
private String name;
private String password;
public User() {
System.out.println( " User构造 " );
}
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this .password = password;
}
public int getId() {
return id;
}
public void setId( int id) {
this .id = id;
}
}
UserDao.java:
import com.linying.domain.User;
/**
* UserDao
*
* @author Ying-er
* @time 2010-6-20 上午10:17:55
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class UserDao {
public UserDao() {
System.out.println( " UserDao构造 " );
}
public void insert(User user) {
System.out.println( " 执行insert方法 " );
}
}
UserAction.java:
import com.linying.dao.UserDao;
import com.linying.domain.User;
/**
* UserAction
*
* @author Ying-er
* @time 2010-6-20 上午10:28:16
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class UserAction {
private User user;
private UserDao userDao;
public UserAction() {
System.out.println( " UserAction构造 " );
}
/**
* 保存User对象
*
*/
public void saveUser() {
userDao.insert(user);
System.out.println( " saveUser方法被调用 " );
}
public void setUser(User user) {
this .user = user;
System.out.println( " setUser方法被调用 " );
}
public void setUserDao(UserDao userDao) {
this .userDao = userDao;
System.out.println( " setUserDao方法被调用 " );
}
}
测试——Main.java:
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.linying.service.UserAction;
/**
* 测试程序入口
*
* @author Ying-er
* @time 2010-6-20 上午11:20:24
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BeanFactory bf = (BeanFactory) ( new ClassPathXmlApplicationContext(
" beans.xml " ));
UserAction userAction = (UserAction) bf.getBean( " userAction " );
userAction.saveUser();
}
}
控制台输出:
UserDao构造
User构造
UserAction构造
setUser方法被调用
setUserDao方法被调用
执行insert方法
saveUser方法被调用
2.静态工厂注入
:
修改beans.xml:
< bean name ="userDomain" class ="com.linying.domain.User" ></ bean >
< bean name ="userAction" class ="com.linying.service.UserAction" >
< property name ="user" ref ="userDomain" ></ property >
< property name ="userDao" ref ="userDao" ></ property >
</ bean >
增加工厂:
import com.linying.dao.UserDao;
/**
* Dao静态工厂
* @author Ying-er
* @time 2010-6-20 下午04:23:25
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class DaoFactory {
public static UserDao getUserDao(){
return new UserDao();
}
}
控制台输出:
UserDao构造
User构造
UserAction构造
setUser方法被调用
setUserDao方法被调用
执行insert方法
saveUser方法被调用
3.实例工厂注入
:
修改beans.xml:
< bean name ="userDao" factory-bean ="daoFactory" factory-method ="getUserDao" ></ bean >
< bean name ="userDomain" class ="com.linying.domain.User" ></ bean >
< bean name ="userAction" class ="com.linying.service.UserAction" >
< property name ="user" ref ="userDomain" ></ property >
< property name ="userDao" ref ="userDao" ></ property >
</ bean >
增加实例工厂:
import com.linying.dao.UserDao;
/**
* Dao实例工厂
* @author Ying-er
* @time 2010-6-20 下午04:23:25
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class DaoFactory {
public UserDao getUserDao(){
return new UserDao();
}
}
控制台输出:
UserDao构造
User构造
UserAction构造
setUser方法被调用
setUserDao方法被调用
执行insert方法
saveUser方法被调用
4.构造器注入
:
修改beans.xml:
< bean name ="userDomain" class ="com.linying.domain.User" ></ bean >
< bean name ="userAction" class ="com.linying.service.UserAction" >
< constructor-arg ref ="userDomain" ></ constructor-arg >
< constructor-arg ref ="userDao" ></ constructor-arg >
</ bean >
修改UserAction.java:
import com.linying.dao.UserDao;
import com.linying.domain.User;
/**
* UserAction
*
* @author Ying-er
* @time 2010-6-20 上午10:28:16
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class UserAction {
private User user;
private UserDao userDao;
public UserAction() {
System.out.println( " UserAction构造 " );
}
public UserAction(User user,UserDao userDao){
System.out.println( " UserAction构造(有参构造) " );
this .user = user;
this .userDao = userDao;
}
/**
* 保存User对象
*
*/
public void saveUser() {
userDao.insert(user);
System.out.println( " saveUser方法被调用 " );
}
// public void setUser(User user) {
// this.user = user;
// System.out.println("setUser方法被调用");
// }
//
// public void setUserDao(UserDao userDao) {
// this.userDao = userDao;
// System.out.println("setUserDao方法被调用");
// }
}
控制台输出:
UserDao构造
User构造
UserAction构造(有参构造)
执行insert方法
saveUser方法被调用
5.集合注入
:
beans.xml:
< bean name ="userDao" factory-bean ="daoFactory"
factory-method ="getUserDao" >
</ bean >
< bean name ="userDomain" class ="com.linying.domain.User" >
< property name ="id" >
< value > 1 </ value >
</ property >
< property name ="name" value ="admin" ></ property >
< property name ="password" value ="123" ></ property >
<!-- property name="birthday" value="1987-06-20"></property> -->
< property name ="listDemo" >
< list >
< value > list-1 </ value >
< value > list-2 </ value >
</ list >
</ property >
< property name ="setDemo" >
< set >
< value > set-1 </ value >
< value > set-2 </ value >
</ set >
</ property >
< property name ="mapDemo" >
< map >
< entry key ="k1" value ="v1" ></ entry >
< entry key ="k2" value ="v2" ></ entry >
</ map >
</ property >
</ bean >
< bean name ="userAction" class ="com.linying.service.UserAction" >
< property name ="user" ref ="userDomain" ></ property >
< property name ="userDao" ref ="userDao" ></ property >
</ bean >
User.java:
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 领域对象
*
* @author Ying-er
* @time 2010-6-20 上午10:01:05
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class User {
private int id;
private String name;
private String password;
private Date birthday;
private List < String > listDemo;
private Set < String > setDemo;
private Map < String, String > mapDemo;
public User() {
System.out.println( " User构造 " );
}
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this .password = password;
}
public int getId() {
return id;
}
public void setId( int id) {
this .id = id;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this .birthday = birthday;
}
public List < String > getListDemo() {
return listDemo;
}
public void setListDemo(List < String > listDemo) {
this .listDemo = listDemo;
}
public Map < String, String > getMapDemo() {
return mapDemo;
}
public void setMapDemo(Map < String, String > mapDemo) {
this .mapDemo = mapDemo;
}
public Set < String > getSetDemo() {
return setDemo;
}
public void setSetDemo(Set < String > setDemo) {
this .setDemo = setDemo;
}
}
Main.java:
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.linying.service.UserAction;
/**
* 测试程序入口
*
* @author Ying-er
* @time 2010-6-20 上午11:20:24
* @mail melody.crazycoding@gmail.com
* @version 1.00
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BeanFactory bf = (BeanFactory) ( new ClassPathXmlApplicationContext(
" beans.xml " ));
UserAction userAction = (UserAction) bf.getBean( " userAction " );
System.out.println(userAction.getUser().getId());
System.out.println(userAction.getUser().getName());
System.out.println(userAction.getUser().getPassword());
// System.out.println(userAction.getUser().getBirthday());
System.out.println(userAction.getUser().getListDemo());
System.out.println(userAction.getUser().getSetDemo());
System.out.println(userAction.getUser().getMapDemo());
}
}
控制台输出:
UserDao构造
User构造
UserAction构造
setUser方法被调用
setUserDao方法被调用
1
admin
123
[list-1,
list-2]
[set-1, set-2]
{k1=v1, k2=v2}
转自:http://www.blogjava.net/crazycoding/archive/2010/06/20/324002.html
发表评论
-
RESTFUL
2013-05-29 17:21 0a -
hibernate命名查询问题
2013-01-30 16:38 1330hibernate 注解 @OneToOne(fetc ... -
hibernate [Null value was assigned to a property of primitive type setter of sco
2012-12-25 19:51 1120今天开发时候 hibernate 查询报错,分析原因如下: ... -
Arrays.asList详解
2012-09-10 09:52 891Arrays.asList详解 记得以前写过一 ... -
mapper.readValue读取null
2012-08-17 19:21 2619如下代码,这样写不会走catch方法,此方法不报ioExcep ... -
string.split(",")返回的长度问题
2012-08-17 15:38 921String test = "#我的测试#&q ... -
thumbnailator 图片缩放问题
2012-08-17 19:29 2761这段代码上传1.7m图片会报错: publ ... -
模拟微博新鲜事短网址处理方式
2012-08-16 17:40 0a -
新鲜事短连接
2012-08-19 12:01 961现在需求如下: 使 ... -
jackson objectMapper.readValue 读取并存成想要的类型
2012-07-26 20:16 3729两种方式: java反射里面有个很有趣的东东,反射解析成li ... -
spring mvc responseBody 会把特殊字符转义
2012-07-26 19:53 4522框架用的spring 采用spring mvc 方式进行图片上 ... -
Out of range value for column 'bindUid' at row 1
2012-07-19 20:35 1499今天弄新浪微博绑定,数据库oauth_token表需要插入bi ... -
spring mvc 自己遇到的几个错误
2012-06-13 14:36 1207where 1=1 and t.name like '%&q ... -
Request method 'POST' not supported
2012-06-08 10:53 5212项目采用spring mvc框架实现,插入数据时候采用 ... -
beanPropertyRowMapper
2012-08-10 11:24 1094@SuppressWarnings(&quo ... -
org.codehaus.jackson.map.JsonMappingException
2012-08-17 19:30 996当一个类的所有属性都没有getter时(所有属性都是publi ... -
validApiToken
2012-08-10 11:26 980/** * 检验token的有效性 * @p ... -
split
2012-05-23 10:46 1206//String[] idArr = StringUtil ... -
spring mvc title展示的几种写法
2012-05-18 17:16 1098我记录的是工作中遇到的,容易忽视的问题,高手可以绕行了。积累也 ... -
c:import src="" jsp页面同步方式获取数据
2012-05-14 11:28 1089可以把页面分割成不同的几块,同步方式获取数据。即分别调用 ...
相关推荐
我们在开发过程中经常会发生spring注入错误或失败的情况,其实Web服务器端在Action、dao、service包之内是很容易实现的,在这些包之外实现spring注入就不容易了,总是出错,其实根本原因是无法获得相应的spring上...
在本篇文章中,我们将深入探讨Spring注入原理,特别是注解方式的实现,帮助你更好地理解和掌握这一技术。 ### 1. 依赖注入(Dependency Injection) 依赖注入是Spring的核心特性,它允许我们解耦组件间的依赖关系...
综上所述,Spring注入文件的写法涉及了数据源、Hibernate集成、事务管理和DAO的声明及配置。通过这种方式,Spring能够提供一个灵活且强大的基础设施,支持数据库操作和事务管理,同时保持代码的整洁和模块化。
本文将详细探讨Spring中的两种主要注入方式:构造器注入和setter注入,以及它们各自的特点和适用场景。 首先,让我们理解什么是依赖注入(Dependency Injection,简称DI)。在传统的编程模式中,一个类通常会直接...
spring注入配置文件,使用注解注入的
标题中的"Spring注入map共2页.pdf.zip"指的是一个关于Spring框架中Map注入的教程文档,被压缩成PDF格式,并且包含两页内容。描述与标签的信息似乎有误,只给出了部分文件名,但我们可以根据标题来深入探讨Spring框架...
### Spring框架中的属性值注入详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用程序。它提供了全面的基础架构支持,包括依赖注入(Dependency Injection, DI)、面向切面编程...
下面我们将详细探讨这三个框架的整合过程以及注解方式的Spring注入。 1. **Struts2**:Struts2是基于MVC设计模式的Web应用框架,用于控制应用程序的流程。在SSH2整合中,Struts2处理HTTP请求,解析请求参数,并转发...
标题提到的问题是“struts2+spring+hibernate整合中spring注入出错,页面中报空指针异常”,这通常是由于Spring的依赖注入没有正确配置导致的。 首先,让我们深入了解一下Struts2、Spring和Hibernate各自的核心概念...
在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和...
Spring注入Filter与Listener的方法.png
### Spring注入原理详解 在Java开发领域,Spring框架无疑占据着举足轻重的地位,尤其在企业级应用中,Spring的依赖注入(Dependency Injection,DI)特性极大地简化了对象之间的依赖管理,使得代码更加模块化、可...
静态方法中调用Spring注入过程解析 静态方法中调用Spring注入过程解析是 Spring 框架中一个重要的知识点。本文将详细介绍静态方法中调用Spring注入过程解析的实现机制和关键技术要点。 Spring_IOC_容器 在Spring...
使用spring的依赖注入,来实现servlet中注入dao层
Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...
Spring 框架是 Java 开发中非常重要的一个组件,它提供了一种强大的依赖注入(Dependency Injection,简称 DI)机制,使得对象之间的依赖关系可以通过配置文件或者注解来管理,而不是硬编码在类的内部。这有助于提高...
下面将详细介绍这三种方式以及Spring的自动注入机制。 1. **基于XML的Bean定义**: 在XML配置中,我们通常在`applicationContext.xml`文件中定义Bean。例如,对于`Student`和`Teacher`类,我们分别创建`bean`标签...
spring 注入 quartz
Spring框架的依赖注入(Dependency Injection,简称DI)是其核心特性之一,它使得对象之间的关系在运行时由Spring容器管理,而不是硬编码在类内部。这样可以提高代码的可测试性和可维护性,因为对象的依赖关系变得松...
Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的概念、工作原理以及如何在实际...