一艾船、用于創(chuàng)建對(duì)象的注解:
相當(dāng)于:
<bean id="" class="">
1)@Component
作用:
把資源讓spring來(lái)管理纯命。相當(dāng)于在xml中配置一個(gè)bean等龙。
屬性:
value:指定bean的id。如果不指定value屬性,默認(rèn)bean的id是當(dāng)前類的類名析既。首字母小寫。
2)@Controller 、@Service 押袍、@Repository
他們?nèi)齻€(gè)注解都是
@Component
的衍生注解,他們的作用及屬性都是一模一樣的凯肋。 他們只不過(guò)是提供了更加明確的語(yǔ)義化谊惭。
@Controller
:一般用于表現(xiàn)層的注解。
@Service
:一般用于業(yè)務(wù)層的注解侮东。
@Repository
:一般用于持久層的注解圈盔。
注意:如果注解中有且只有一個(gè)屬性要賦值時(shí),且名稱是value悄雅,value在賦值是可以不寫驱敲。
二、用于注入數(shù)據(jù)的:
相當(dāng)于:
<property name="" ref="">
<property name="" value="">
1)@Autowired
作用:
自動(dòng)按照類型注入宽闲。當(dāng)使用注解注入屬性時(shí)众眨,set方法可以省略。
它只能注入其他bean類型容诬。
當(dāng)有多個(gè)類型匹配時(shí)娩梨,使用要注入的對(duì)象變量名稱作為bean的id,在spring容器查找览徒,找到了也可以注入成功狈定。找不到就報(bào)錯(cuò)
2)@Qualifier
作用:
在自動(dòng)按照類型注入的基礎(chǔ)之上,再按照Bean的id注入习蓬。它在給字段注入時(shí)不能獨(dú)立使用纽什,必須和@Autowire
一起使用;但是給方法參數(shù)注入時(shí)躲叼,可以獨(dú)立使用芦缰。
屬性:
value:指定bean的id。
3)@Resource
作用:
直接按照Bean的id注入枫慷。它也只能注入其他bean類型让蕾。
屬性
name:指定bean的id浪规。
4)@Value
作用:
注入基本數(shù)據(jù)類型和String類型數(shù)據(jù)的
屬性:
value:用于指定值
三、用于改變作用范圍的:
相當(dāng)于:
<bean id="" class="" scope="">
1)@Scope
作用:
指定bean的作用范圍涕俗。
屬性:
value:指定范圍的值罗丰。
取值:singleton prototype request session globalsession
四、和生命周期相關(guān)的:
相當(dāng)于:
<bean id="" class="" init-method="" destroy-method="" />
1)@PostConstruct
作用: 用于指定初始化方法再姑。
2)@PreDestroy
作用: 用于指定銷毀方法萌抵。
五、和配置類有關(guān):
1)@Configuration
作用:
用于指定當(dāng)前類是一個(gè)spring配置類元镀,當(dāng)創(chuàng)建容器時(shí)會(huì)從該類上加載注解绍填。獲取容器時(shí)需要使用AnnotationApplicationContext(有@Configuration注解的類.class)。
屬性:
value:用于指定配置類的字節(jié)碼
2)@ComponentScan
作用:
用于指定spring在初始化容器時(shí)要掃描的包栖疑。
作用和在spring的xml配置文件中的一樣: <context:component-scan base-package="com.zl"/>讨永。
屬性:
basePackages:用于指定要掃描的包。和該注解中的value屬性作用一樣遇革。
3)@Bean
作用:
該注解只能寫在方法上卿闹,表明使用此方法創(chuàng)建一個(gè)對(duì)象,并且放入spring容器萝快。
屬性:
name:給當(dāng)前@Bean注解方法創(chuàng)建的對(duì)象指定一個(gè)名稱(即bean的id)锻霎。
4)@PropertySource
作用:
用于加載.properties文件中的配置。例如我們配置數(shù)據(jù)源時(shí)揪漩,可以把連接數(shù)據(jù)庫(kù)的信息寫到properties配置文件中旋恼,就可以使用此注解指定properties配置文件的位置。
屬性:
value[]:用于指定properties文件位置奄容。如果是在類路徑下冰更,需要寫上classpath:
5)@Import
作用:
用于導(dǎo)入其他配置類,在引入其他配置類時(shí)昂勒,可以不用再寫@Configuration注解蜀细。當(dāng)然,寫上也沒(méi)問(wèn)題叁怪。
屬性:
value[]:用于指定其他配置類的字節(jié)碼审葬。
和Junit測(cè)試類有關(guān):
在junit類中使用注解前,我們需要先在pom.xml
引入依賴:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
1)@RunWith
替換原有運(yùn)行器
@RunWith(SpringJUnit4ClassRunner.class)
public class TestCRUD {
2)@ContextConfiguration
指定spring配置文件的位置
locations屬性:用于指定配置文件的位置奕谭。如果是類路徑下,需要用classpath:表明
classes屬性:用于指定注解的類痴荐。當(dāng)不使用xml配置時(shí)血柳,需要用此屬性指定注解類的位置。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
//@ContextConfiguration(locations= {"classpath:bean.xml"})
public class TestCRUD {