spring常用注解及常用依賴


常用依賴

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.6.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.2.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.10</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13</version>
    </dependency>
</dependencies>

Spring核心配置文件:

 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd">

<!--bean就是java對象 , 由Spring創建和管理-->
<!--開啟注解-->
<!--指定要掃描的包,這個包下的注解就會生效-->
<context:component-scan base-package="pojo"></context:component-scan>
<context:annotation-config/>    
</beans>

注解說明

  • @Autowired:自動裝配,通過類型,名字 如果不能Autowired不能唯一自動裝配上屬性,則需要通過quailifier(value="xxx")

  • @Autowired是根據類型自動裝配的,加上@Qualifier則可以根據byName的方式自動裝配

  • @Qualifier不能單獨使用。

  • @Nullable:加上這個注解,表明該值為空

  • @resource:自動裝配,通過名字,類型

  • @component:組件,放在類上,表明這個類被spring管理了,就是bean!

  • @Resource如有指定的name屬性,先按該屬性進行byName方式查找裝配;

    其次再進行默認的byName方式進行裝配;

    如果以上都不成功,則按byType的方式自動裝配。

    都不成功,則報異常。

  • @Component三個衍生注解

    為了更好的進行分層,Spring可以使用其它三個注解,功能一樣,目前使用哪一個功能都一樣。

    • @Controller:web層

    • @Service:service層

    • @Repository:dao層

小結

  • @Autowired與@Resource異同:

  • 1、@Autowired與@Resource都可以用來裝配bean。都可以寫在字段上,或寫在setter方法上。

  • 2、@Autowired默認按類型裝配(屬於spring規范),默認情況下必須要求依賴對象必須存在,如果要允許null 值,可以設置它的required屬性為false,如:@Autowired(required=false) ,如果我們想使用名稱裝配可以結合@Qualifier注解進行使用

  • 3、@Resource(屬於J2EE復返),默認按照名稱進行裝配,名稱可以通過name屬性進行指定。如果沒有指定name屬性,當注解寫在字段上時,默認取字段名進行按照名稱查找,如果注解寫在setter方法上默認取屬性名進行裝配。當找不到與名稱匹配的bean時才按照類型進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配。 它們的作用相同都是用注解方式注入對象,但執行順序不同。@Autowired先byType,@Resource先byName。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM