https://download.csdn.net/download/skywalker0011/10223860 已下载过
Resource和Component注解
ApplicationContextAware接口(获取spring容器以便获取容器中任意的bean)
当一个类实现了这个接口之后,这个类就可以方便地获得 ApplicationContext 中的所有bean。换句话说,就是这个类可以直接获取Spring配置文件中,所有有引用到的bean对象。
注入的类不仅可以注入对象,还能给对象在配置文件中设置属性值(当然是在bean标签下)。找不到某个注入的对象的值从哪里来可全局搜改对象名在配置文件中找对应的bean
注入的基础是在xml里配置bean,或在类上配@Service注解且改类要能被扫描到(有东西再谈注入)。这两种方式至少要存在一种,注入jsf接口的名字可以和xml里配的bean的id不一样,但注入的基础也是有的
为什么@Autowired注解引入的bean都不需要在配置文件中配置了???
不在配置文件配置bean的话:需要
<!--启用注解-->
<context:annotation-config/>
<!--spring注解扫描范围配置-->
<context:component-scan base-package="springTimer">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
且在类上写上注解
进化:
1.含注入方法的类
2.类路劲和类依赖方式的XML或@Configration类(还需@bean)的组装信息
(@Configration注解表明这是一个spring上下文配置类,其中包含spring上下文如何创建bean的细节)
3.以2为参数创建spring上下文。
自动装配:
1.含注入方法的类(自动装配中@Autowire修饰属性时可不含注入方法)
2.XML 或 @Configration注解修饰的类开启注解扫描ComponentScan,被扫描的类配置@Component注解
@Autowire注解修饰被依赖的类属性或任何注入方法
相当于用ComponentScan(标签或注解),@Component注解替换了上下文参数配置中的类路径,@Autowire替换了上下文参数配置中的类依赖方式(甚至类中的注入方法)。
3.@ContextConfigration上下文注解以@Configration修饰的类或XML路径为参数。
显式装配:(应用中使用第三方组件时不能用@Component注解时)
用@Autowire时必须修饰注入方法修饰属性不起作用
@Import注解和<import>标签及@ImportResource("")都是用来扩展spring上下文参数的。