Spring中有关IOC容器的注解注入关键词
@Configuration
代表着Spring配置文件中一大串 xml:context="http:......"
@Component("beanId")
代表着原来Spring配置文件中为每个bean设置id,通过ctx.getBean()可以获取到,但是ctx的实例化方式也变了,变成了 AnnotationConfigApplicationContext(SpringConfig.class)
@Repository("bookDao")
用于数据层Dao的bean定义可以简写为@Repository,数据仓库
@Controller
用于业务层pojo的定义可以简写为@Controller
@Service
@Component用于业务层Service定义bean,可以简写为@Service
@ComponentScan("com.spring")
代表着Spring配置文件中的组件扫描 component-scan,括号里面的代替了 base-package="com.spring",扫描的区域
@Autowired
@Autowired注入引用类型,自动装配模式,默认按类型装配byType,
自动装配可以不写set方法
使用@Qualifier("bookDao2") 按名称进行自动装配
@Qualifier:自动装配时byName 按bean名称装配,括号里面是 id
@Scope("singleton")在对应的@Component文件中设置
@Scope默认singleton单例,prototype是非单例,设置单例非单例作用范围
@PostConstruct
初始化方法调用 PostConstruct 注解,理解为 :构造函数之后的方法 @PostConstruct
@PreDestroy
销毁方法调用PreDestroy 注解,理解为 : 彻底销毁之前的方法 @PreDestroy
@PropertySource("classpath:jdbc.properties")
通过@Propertires可以读取外部properties文件,如果使用里面属性名需要@Value("${name}"),如果是多个文件使用数组{}形式
第三方bean @Import({JdbcConfig.class}) 引入
导入第三方bean不在配置文件里面编辑,而是新建一个文件JdbcConfig.class然后导入到SpringConfig文件中
@Bean
@Bean代表把这个第三方bean变成一个配置文件中的 <bean />
@Bean管理简单类型,就是直接在上方声明变量然后@Value(""),
@Bean管理引用类型就是往括号里写形参,形参根据类型byType自动装配,但是组件扫描必须能够扫描到这个形参
