使用注解开发
在spring4之后,要使用注解开发,必须要保证aop的包导入了
使用注解需要导入context约束,增加注解的支持
配置context约束
<!-- 指定要扫描的包 此包下的注解就会失效-->
<context:component-scan base-package="com.zxw.pojo"/>
1.bean
2.属性如何注入
@Component
public class User {
// @Value("zxw")
public String name;
@Value("zxw")
public void setName(String name) {
this.name = name;
}
}
3.衍生的注解
@Component有几个衍生的注解,我们在web开发中,会按照mvc三层架构分层
dao. @Repository
service @Service
controller. @Controller
以上注解,功能相同,都是讲某个类注册到spring中,装配bean
4.自动装配配置
@Autowired
@Resource
5.作用域
@Scope
@Scope(value = “prototype”)
6.小结
xml更加万能 适用于任何场合 维护简单方便
注解 不是自己的类使用不来,维护相对复杂
最佳实践:xml用来管理bean
注解只负责完成属性的注入;
注意一个问题:必须让注解生效,开启注解支持
<context:annotation-config/>
<!-- 扫描包 此包下的注解就会生效-->
<context:component-scan base-package="com.zxw.pojo"/>
使用java的方式配置spring
现在要完全不使用spring的xml配置了,全权交给java来做,JavaConfig是spring的一个子项目,在spring4之后,它成为了一个核心功能!
@Configuration
@Import(Mytest.class) 引入其他的beans.xml 多个配置类中使用
public class MyConfig {
// 注册一个bean 相当于bean标签 方法名等价于 id,方法返回值 等价于class属性
@Bean
public User getUser(){
return new User();
}
测试
public class Mytest {
public static void main(String[] args) {
// 如果完全使用类配置类方式去做,我们就只能通过AnnotationConfigApplication上下文来获取容器,通过配置类的class来加载
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
User user = (User) context.getBean("getUser");
System.out.println(user.toString());
}
}