1.Spring的注解装配Bean
首先配置文件(applicationContext.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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config></context:annotation-config>
</beans>
Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean
** 出现问题
开始我的JDK1.8无法识别注解方式!!更改为JDK1.7之后可以识别!!
@Component("person")
public class Person{
//内部代码
}
//等同于在xml文件中
<bean id="person" class="..."></bean>
Spring的框架中提供了与@Component注解等效的三个注解:
@Repository 用于对DAO实现类进行标注
@Service 用于对Service实现类进行标注
@Controller 用于对Controller实现类进行标注
2. Bean属性的注入
1.普通属性
@Value(value="陈文琳")
private String infoString;
2. 对象属性
@Autowired
@Qualifier(value="userDao")
private UserDao userDao;
//等价于
@Resource(name="userDao")
private UserDao userDao;
//等价于
<property id="userDao" ref="userDao"></bean>
3. Bean其他属性的配置
配置Bean初始化方法和销毁方法:
* init-method 和 destroy-method.
@PostConstruct 初始化
@PreDestroy 销毁
配置Bean的作用范围:
@Scope
@Service("userService")
@Scope(value="prototype") // 多例的
public class UserService {
@Value(value="陈文琳")
private String infoString;
@Autowired
@Qualifier(value="userDao")
private UserDao userDao;
@PostConstruct
public void init(){
System.out.println("初始化方法...");
}
@PreDestroy
public void destory(){
System.out.println("销毁方法...");
}
1.6 Spring集成Junit测试
- 程序中有Junit环境.
- 导入一个jar包
-
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations="classpath:applicationContext.xml") public class SpringTest { @Autowired private UserService userService; @Test public void demo1(){ userService.sayHello(); } }