首頁  >  文章  >  Java  >  spring都有什麼註解

spring都有什麼註解

(*-*)浩
(*-*)浩原創
2019-05-16 14:35:042406瀏覽

spring 註解可以減少xml配置;註釋配置相對於 XML 配置具有很多的優勢:它可以充分利用 Java 的反射機制獲取類結構信息,這些信息可以有效減少配置的工作。如使用JPA 註解配置ORM 映射時,我們就不需要指定PO 的屬性名稱、類型等信息,如果關係表字段和PO 屬性名、類型都一致,您甚至無需編寫任務屬性映射信息——因為這些信息都可以透過Java 反射機制來取得。

推薦課程:Java教學

spring都有什麼註解

使用註解之前要開啟自動掃描功能

#其中base-package為需要掃描的套件(含子套件)。

<context:component-scan base-package="cn.test"/>

@Configuration把一個類別當作一個IoC容器,它的某個方法頭上如果註冊了@Bean,就會作為這個Spring容器中的Bean。

@Scope註解作用域

@Lazy(true) 表示延遲初始化

@Service用於標註業務層元件、 

@Controller用於標註控制層元件(如struts中的action)

@Repository用於標註資料存取元件,即DAO元件。

@Component泛指元件,當元件不好歸類的時候,我們可以使用這個註解來標註。

@Scope用來指定scope作用域的(用在類別上)

---------------jsr250----

#@PostConstruct用來指定初始化方法(用在方法上)

@PreDestory用於指定銷​​毀方法(用在方法上)

@Resource 預設按名稱組裝,當找不到與名稱相符的bean才會依類型組裝。

----------

@DependsOn:定義Bean初始化及銷毀時的順序

@Primary:自動組裝時當出現多個Bean候選者時,被註解為@Primary的Bean將作為首選者,否則將拋出異常

#@Autowired 預設按類型裝配,如果我們想使用按名稱裝配,可以結合@Qualifier註解一起使用。如下:

@Autowired @Qualifier("personDaoBean") 存在多個實例配合使用

@PostConstruct 初始化註解

@PreDestroy 摧毀註解 預設 單例  啟動就載入? ?

@Async非同步方法調用,需要加入以下程式碼:

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="10"/>
<property name="maxPoolSize" value="300"/>
</bean>
<task:annotation-driven/>

為了讓@Async註解能夠生效,還需要在Spring Boot的主程式中配置@EnableAsync

在Spring中,基於@Async標註的方法,稱之為非同步方法;

這些方法將在執行的時候,將會在獨立的執行緒中被執行,

呼叫者無需等待它的完成,

即可繼續其他的操作。

@Async所修飾的函數不要定義為static類型,這樣非同步呼叫不會生效

@ComponentScan(basePackages = "com.xzc.")

@EnableAutoConfiguration

@SpringBootApplication

@PropertySource({"classpath:application.properties", "classpath:xzc.properties"})

#@ImportResource("classpath:ws-client .xml")

@EnableRedisHttpSession

@EnableAspectJAutoProxy

@EnableCaching

#@EnableAsync

@Configuration @EnableScheduling 啟動定時任務

@Entity註解指名這是一個實體Bean 

@SuppressWarnings註解?

1、 @PathVariable 

當使用@RequestMapping URI template 樣式映射時,即someUrl/{paramId}, 這時的paramId可透過@Pathvariable註解綁定它傳過來的值到方法的參數上

@Controller  
@RequestMapping("/owners/{ownerId}")  
public class RelativePathUriTemplateController {  

@RequestMapping("/pets/{petId}")  
public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {      
    // implementation omitted  
    }  
}

上面程式碼把URI template 中變數ownerId的值和petId的值,綁定到方法的參數上。

若方法參數名稱和需要綁定的uri template中變數名稱不一致,需要在@PathVariable("name")指定uri template中的名稱。

Spring 4.2新特性-使用@Order調整配置類別載入順序

------------------- ---------------------------------

lombok 簡化java程式碼註解理解

#lombok 註解:

lombok 提供的註解不多,可以參考官方影片的講解和官方文件。

Lombok 註解線上說明文件:http://projectlombok.org/features/index.

下面介紹幾個我常用的lombok 註解:

#    @Data   :註解在類別上;提供類別所有屬性的getting 和setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法

    @Setter:註解在屬性上;為屬性提供setting 方法

    @Getter:註解在屬性上;為屬性提供getting 方法

    @Log4j :註解在類別上;為類別提供一個屬性名稱為log 的log4j 日誌物件

    @NoArgsConstructor:註解在類別上;為類別提供一個無參的構造方法

    @AllArgsConstructor:註解在類別上;為類別提供一個全參的構造方法

======== ==========================

以上是spring都有什麼註解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn