在Spring4之后,要使用注解开发,必须保证aop的包导入了,使用注解需要导入context约束,增加注解支持
context约束,注解支持
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
<!-- 开启属性注解支持-->
<context:annotation-config/>
Bean实现
1.指定要扫描的包,这个包下的注解就会生效
<context:component-scan base-package="com.feng.pojo"/>
2.在指定的包下编写类,增加注解
//@Component("user") 等价于在bean中配置的<bean id="user"
@Component("user")
public class User{
public String name = "小风";
}
属性注入
1.可以不用提供set方法,直接在属性上添加@value(“值”)
@value("小风")
public String name;
2.如果提供了set方法,也可以在set方法上添加@value(“值”)
@value("小风")
public void setName(String name){
this.name = name;
}
衍生注解
@Component三个衍生注解(功能都一样)
@Controller:web层
@Service:service层
@Reqository:dao层
自动装配注解
@Autowired:直接在属性上使用即可!也可以在set方法上使用
使用Autowired我们可以不用编写set方法了,前提是这个自动装配的属性在IOC(Spring)容器中存在,且名字符合byName
作用域
@socpe
singleton:默认的,Spring会采用单例模式创建这个对象。关闭工厂,所有对象都会被销毁
prototype:原型模式。关闭工厂,所有的对象不会销毁,内部的垃圾回收机制会回收
小结
XML与注解进行比较:
XML可以适用于任何场景,结构清晰,维护方便
注解不是自己提供的类使用不了,开发简单方便