bean的作用域
bean的生命周期
bean的拆卸
代码
实体类
package com;import java.util.List;public class User { private String username; private String password; private List<String> list; /** * 设值注入要求bean类: * 1、必须提供默认无参构造方法 * 2、为属性提供setter办法 */ public User() { } public User(String username, String password, List<String> list) { this.username = username; this.password = password; this.list = list; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } @Override public String toString() { return "User{" + "username='" + username + '\'' + ", password='" + password + '\'' + ", list=" + list + '}'; }}
dao层
package com;import org.springframework.stereotype.Repository;@Repository("userDao1")public class UserDaoImpl implements UserDao{ public void say() { System.out.println("dao"); } }
service层
package com;import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service("userService")public class UserServiceImpl implements UserService{ @Resource(name="userDao1")// @Autowired private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void save() { this.userDao.say(); System.out.println("service"); }}
controller层
package com;import org.springframework.stereotype.Controller;import javax.annotation.Resource;@Controller("userController")public class MyController { @Resource(name="userService")// @Autowired UserService userService; public void setUserService(UserService userService) { this.userService = userService; } public void say(){ this.userService.save(); System.out.println("controller"); }}
基于XML拆卸(设值注入和结构注入)
<?xml version="1.0" encoding="UTF-8"?><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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"><bean id="userDao" class="com.UserDaoImpl"/><!-- 应用结构注入形式拆卸bean --><bean id="user1" class="com.User"> <constructor-arg index="0" value="zhangsan" /> <constructor-arg index="1" value="123" /> <constructor-arg index="2"> <list> <value>construct1</value> <value>construct2</value> </list> </constructor-arg></bean> <!-- 应用设值注入形式拆卸bean --><bean id="user2" class="com.User"> <property name="username" value="lisi" /> <property name="password" value="123" /> <property name="list"> <list> <value>set1</value> <value>set2</value> </list> </property> </bean></beans>
基于Annotation拆卸
<?xml version="1.0" encoding="UTF-8"?><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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"> <bean id="userDao1" class="com.UserDaoImpl" /> <bean id="userService" class="com.UserServiceImpl" /> <bean id="userController" class="com.MyController" /> <!-- 开启注解 --> <context:annotation-config /></beans>
主动拆卸
<!-- 扫描包--> <context:component-scan base-package="com"/>
小结
而后用@Autowired注解标注在属性上就能够实现主动拆卸了