使用注解开发spring(重点)
在spring4之后,使用注解开发必须和AOP一同使用
和mybatis一样,只建议在实现简单的需求时使用注解,复杂的需求仍然建议使用xml配置文件,更清晰更方便
补充:扫描时,可以使用exclude-filter和include-filter来指定扫描某些类或注定不扫描某些类
exclude-filter:指定不扫描某些类或添加了某些注解的类,type属性设置排除规则,常用的由annocation和assignalbe,前者按添加的注解来排除后者按类本身来排除,设定规则后在expression中添加要排除的类的全类名或者要排除添加了某类注解的类的注解的全类名即可达到排除的效果
include-filter:与exclude-filter相反,是只扫描指定类或添加了指定注解的类,要注意若要使用此功能,需要禁用默认的扫描规则,即use-defalut-filter="false",因为默认的扫描规则是全扫描
- bean(@Component)
@Component //等价于 <bean id="user" class="cn.yzx.pojo.user">
public class user {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- 属性如何注入
@Value("杨子贤") //等价于 <property name="name" value="杨子贤"/>
private String name;
@Value("杨子贤") //等价于 <property name="name" value="杨子贤"/>
public void setName(String name) {
this.name = name;
}
使用在set方法或属性上效果一样
- 衍生的注解
在mvc架构的开发中,可以使用@Component衍生出来的三个注解来区分mvc架构中的三层结构,实际使用效果是一致的
dao层:@Repository
service层:@Service
controller层:@Controller
注意:这三个衍生注解效果与@Component一模一样,都是将bean注册到spring容器中,只是用于区分mvc对应的三层结构 - 自动装配置
参考Spring配置最后一段 - 作用域
@Scope("singleton"),内部参数与直接在xml中配置的一致 - 小结
xml 与 注解 :
xml 适用于所有场景,万能
注解有局限性,只能在本类生效
xml 与 注解的最佳实践:
xml管理所有的bean信息,注解用于属性注入
网友评论