使用注解开发
- 在Spring4之后,要使用注解开发,必须保证aop包导入;
- 也需要导入context的约束,增加注解支持!
<?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/>
</beans>
1、bean
2、属性注入
@Component
public class User {
public String name;
//相当于<property name="name" value="Cherry"/>
@Value("Cherry")
public void setName(String name) {
this.name = name;
}
}
3、衍生注解
@Component有几个衍生注解,在web开发中,会按照mvc三层架构分层:
- dao【@Repository】
- service【@Service】
- controller【@Controller】
这四个注解的功能都是一样的,都是将某个类注册到Spring中,即将该类交给Spring托管,配置bean。
4、自动装配
注解说明:
- @Autowired:通过类型、名字自动装配,如果Autowired不能唯一自动装配属性,则需要@Qualifier(value=“xx”);
- @Nullable:字段标记这个注解,说明该字段可以为null;
- @Resource:通过名字、类型自动装配;
- @Component:组件,放置在类上,表明该类被Spring管理了。
5、作用域
@Component
@Scope("singleton")
public class User {
public String name;
//相当于<property name="name" value="Cherry"/>
@Value("Cherry")
public void setName(String name) {
this.name = name;
}
}
6、小结
xml与注解:
- xml更加万能,适用于任何场合!维护简单方便;
- 注解不是自己的类无法使用,维护相对复杂;
xml与注解最佳实现:
- xml用来管理bean;
- 注解只负责完成属性的注入;
- 在使用过程中,必须使得注解生效;
<context:annotation-config/>
<context:component-scan base-package="com.cherry"/>