15 spring给DAO SERVICE SERVLET注解
1 | <!--Spring有四个注解: |
使用注解将组建快速加到容器中,需要几步:
给要天天加的组件上标四个注解的任何一个
告诉Spring自动扫描加了注解的组件:依赖名称空间进行扫描,默认是单例的
<context:component-scan base-package="com.runsstudio"></context:component-scan>
注意需要先添加命名空间
指定base-package,该包下面的所有注解类自动扫描进IOC容器。
如果要支持用注解导入组件,一定要导入AOP包(spring-aop-5.2.0.RELEASE),支持注解模式
从组件中加入的和从包中加入的,行为都是一样的
com.runsstudio 及下面所有加了注解的类都会被扫描
BeanDefinitionStoreException这里可能会包一个错误
1 |
|
1 | @Repository("bookDaoheihei") // 指定新的 bookDao名字 |
1 | @Scope("prototype") //指定是多实例的 |
由于可以用注解快速配置, XMLbean配置的方法适用于配置其他人写的包(无法修改java代码)
16/17 扫描时候只要/排除的组件
1 | <context:exclude-filter type="(排除的规则)" expression=""/> |
【掌握】
assignalble 全类名
annotation 注解排除
【了解】
aspectJ aspectJ表达式
custom 自定义代码特定决定哪些自己使用
regex 正则表达式
1 | <context:component-scan base-package="com.runsstudio" use-default-filters="false"> <context:include-filter type="custom" expression="org.springframework.stereotype.Controller"/></context:component-scan> |
注意 使用include的时候要禁用掉默认的规则use-default-filters=”false”
@Autowired @Resource @Inject 都是用来自动装配的,但是第一个最强大
@Autowired Spring
@Resource J2EE,是JDK的标准
@Inject
三个都是JAVA的标准,不过是开发公司不同
Resource 扩展更强:如果切换成另外一个容器框架,Resource还是可以使用的,Autowired 是Spring开发,离开Spring就不能用了