SpringIOC容器-对象依赖
2016-05-09 20:57
435 查看
1 概述
Spring中,如何给对象的属性赋值? 【DI, 依赖注入】1) 通过构造函数
2) 通过set方法给属性注入值
3) p名称空间
4) 自动装配
5) 注解
1.1 通过构造函数
<!-- ###############对象属性赋值############### --> <!-- 1) 通过构造函数 --> <bean id="user1" class="cn.itcast.c_property.User" scope="prototype"> <constructor-arg value="100"></constructor-arg> <constructor-arg value="Tom"></constructor-arg> </bean>
1.2 (常用)Set方法注入值
<!-- dao instance --> <bean id="userDao" class="c_property.UserDao"></bean> <!-- service instance --> <bean id="userService" class="c_property.UserService"> <property name="userDao" ref="userDao"></property> </bean> <!-- action instance --> <bean id="userAction" class="c_property.UserAction"> <property name="userService" ref="userService"></property> </bean>
User.java
public class User { private int id; private String name; ////////////////// --> 通过容器注入属性值 public void setId(int id) { this.id = id; } // //--> 通过容器注入属性值 public void setName(String name) { this.name = name; } //////////////// public int getId() { return id; } public String getName() { return name; } @Override public String toString() { return "User [id=" + id + ", name=" + name + "]"; } public User() { super(); System.out.println("------User对象创建【无参数构造器】------"); } public User(int id, String name) { System.out.println("-----User对象创建【带参数构造器】--------"); this.id = id; this.name = name; } public void init_user() { System.out.println("创建对象之后,初始化"); } public void destroy_user() { System.out.println("IOC容器销毁,user对象回收!"); } }
UserAction.java
public class UserAction { // Service: springIOC容器注入 private UserService userService; public void setUserService(UserService userService) { this.userService = userService; } public String execute() { userService.save(); return null; } }
UserService.java
public class UserService { private UserDao userDao; // = new UserDao(); // IOC:对象的创建交给spring的外部容器完成 public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void save() { userDao.save(); } }
UserDao.java
public class UserDao { public void save() { System.out.println("zmiagen:保存用户"); } }
1.3 内部bean
<!-- ##############内部bean############## --> <bean id="userAction" class="c_property.UserAction"> <property name="userService"> <bean class="c_property.UserService"> <property name="userDao"> <bean class="c_property.UserDao"></bean> </property> </bean> </property> </bean>
相关文章推荐
- eclipse中怎么生成API帮助文档
- struts中文转换
- Java 集合 - ArrayList
- Java的HashMap和HashTable
- Java再学习-算法之冒泡排序
- java 判断类型instanceof,不要再用try catch了
- Spring MVC 急速集成 Shiro 实录
- SpringMVC访问静态资源
- 字符串--java中判断字符串是否为数字的方法的几种方法?
- [置顶] Eclipse GEF UMLClass(1)
- Hibernate data validator in spring integration
- Maven学习4之eclipse下 maven install和test的两个错误
- SpringIOC容器-创建对象
- JAVA实现过滤掉文本中的表情
- struts2页面属性值回显
- java的ExecutorService 实现线程池
- JAVA——泛型类和泛型方法(静态方法泛型)
- 我理解的RxJava
- 重新学javaweb---文件上传1
- eclipse远程debug