Spring中有關(guān)IOC容器的注解注入關(guān)鍵詞
@Configuration?
代表著Spring配置文件中一大串 xml:context="http:......"
@Component("beanId")
代表著原來Spring配置文件中為每個(gè)bean設(shè)置id,通過ctx.getBean()可以獲取到,但是ctx的實(shí)例化方式也變了,變成了??AnnotationConfigApplicationContext(SpringConfig.class)
@Repository("bookDao")
用于數(shù)據(jù)層Dao的bean定義可以簡(jiǎn)寫為@Repository,數(shù)據(jù)倉(cāng)庫(kù)
@Controller
用于業(yè)務(wù)層pojo的定義可以簡(jiǎn)寫為@Controller
@Service
@Component用于業(yè)務(wù)層Service定義bean,可以簡(jiǎn)寫為@Service
@ComponentScan("com.spring")
代表著Spring配置文件中的組件掃描?component-scan,括號(hào)里面的代替了?base-package="com.spring",掃描的區(qū)域
@Autowired
@Autowired注入引用類型,自動(dòng)裝配模式,默認(rèn)按類型裝配byType,
自動(dòng)裝配可以不寫set方法
使用@Qualifier("bookDao2") 按名稱進(jìn)行自動(dòng)裝配
@Qualifier:自動(dòng)裝配時(shí)byName 按bean名稱裝配,括號(hào)里面是 id
@Scope("singleton")在對(duì)應(yīng)的@Component文件中設(shè)置
@Scope默認(rèn)singleton單例,prototype是非單例,設(shè)置單例非單例作用范圍
@PostConstruct
初始化方法調(diào)用 PostConstruct 注解,理解為 :構(gòu)造函數(shù)之后的方法?@PostConstruct
@PreDestroy
銷毀方法調(diào)用PreDestroy 注解,理解為 : 徹底銷毀之前的方法?@PreDestroy
@PropertySource("classpath:jdbc.properties")
通過@Propertires可以讀取外部properties文件,如果使用里面屬性名需要@Value("${name}"),如果是多個(gè)文件使用數(shù)組{}形式
第三方bean?@Import({JdbcConfig.class}) 引入
導(dǎo)入第三方bean不在配置文件里面編輯,而是新建一個(gè)文件JdbcConfig.class然后導(dǎo)入到SpringConfig文件中
@Bean
@Bean代表把這個(gè)第三方bean變成一個(gè)配置文件中的 <bean />
@Bean管理簡(jiǎn)單類型,就是直接在上方聲明變量然后@Value(""),
@Bean管理引用類型就是往括號(hào)里寫形參,形參根據(jù)類型byType自動(dòng)裝配,但是組件掃描必須能夠掃描到這個(gè)形參
