溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

java中spring都有哪些注解

發(fā)布時(shí)間:2020-11-02 14:47:32 來(lái)源:億速云 閱讀:176 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)java中spring都有哪些注解,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

spring 注解可以減少xml配置;注釋配置相對(duì)于 XML 配置具有很多的優(yōu)勢(shì):它可以充分利用 Java 的反射機(jī)制獲取類(lèi)結(jié)構(gòu)信息,這些信息可以有效減少配置的工作。如使用 JPA 注釋配置 ORM 映射時(shí),我們就不需要指定 PO 的屬性名、類(lèi)型等信息,如果關(guān)系表字段和 PO 屬性名、類(lèi)型都一致,您甚至無(wú)需編寫(xiě)任務(wù)屬性映射信息——因?yàn)檫@些信息都可以通過(guò) Java 反射機(jī)制獲取。

使用注解之前要開(kāi)啟自動(dòng)掃描功能

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

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

@Configuration把一個(gè)類(lèi)作為一個(gè)IoC容器,它的某個(gè)方法頭上如果注冊(cè)了@Bean,就會(huì)作為這個(gè)Spring容器中的Bean。

@Scope注解 作用域

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

@Service用于標(biāo)注業(yè)務(wù)層組件、

@Controller用于標(biāo)注控制層組件(如struts中的action)

@Repository用于標(biāo)注數(shù)據(jù)訪(fǎng)問(wèn)組件,即DAO組件。

@Component泛指組件,當(dāng)組件不好歸類(lèi)的時(shí)候,我們可以使用這個(gè)注解進(jìn)行標(biāo)注。

@Scope用于指定scope作用域的(用在類(lèi)上)

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

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

@PreDestory用于指定銷(xiāo)毀方法(用在方法上)

@Resource 默認(rèn)按名稱(chēng)裝配,當(dāng)找不到與名稱(chēng)匹配的bean才會(huì)按類(lèi)型裝配。

----------

@DependsOn:定義Bean初始化及銷(xiāo)毀時(shí)的順序

@Primary:自動(dòng)裝配時(shí)當(dāng)出現(xiàn)多個(gè)Bean候選者時(shí),被注解為@Primary的Bean將作為首選者,否則將拋出異常

@Autowired 默認(rèn)按類(lèi)型裝配,如果我們想使用按名稱(chēng)裝配,可以結(jié)合@Qualifier注解一起使用。如下:

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

@PostConstruct 初始化注解

@PreDestroy 摧毀注解 默認(rèn) 單例  啟動(dòng)就加載??

@Async異步方法調(diào)用,需要添加以下代碼:

<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標(biāo)注的方法,稱(chēng)之為異步方法;

這些方法將在執(zhí)行的時(shí)候,將會(huì)在獨(dú)立的線(xiàn)程中被執(zhí)行,

調(diào)用者無(wú)需等待它的完成,

即可繼續(xù)其他的操作。

@Async所修飾的函數(shù)不要定義為static類(lèi)型,這樣異步調(diào)用不會(huì)生效

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

@EnableAutoConfiguration

@SpringBootApplication

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

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

@EnableRedisHttpSession

@EnableAspectJAutoProxy

@EnableCaching

@EnableAsync

@Configuration

@EnableScheduling 啟動(dòng)定時(shí)任務(wù)

@Entity注釋指名這是一個(gè)實(shí)體Bean

@SuppressWarnings注解?

1、 @PathVariable

當(dāng)使用@RequestMapping URI template 樣式映射時(shí), 即 someUrl/{paramId}, 這時(shí)的paramId可通過(guò) @Pathvariable注解綁定它傳過(guò)來(lái)的值到方法的參數(shù)上

@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的值,綁定到方法的參數(shù)上。

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

Spring 4.2新特性-使用@Order調(diào)整配置類(lèi)加載順序

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

lombok 簡(jiǎn)化java代碼注解 理解

lombok 注解:

lombok 提供的注解不多,可以參考官方視頻的講解和官方文檔。

Lombok 注解在線(xiàn)幫助文檔:http://projectlombok.org/features/index.

下面介紹幾個(gè)我常用的 lombok 注解:

  @Data   :注解在類(lèi)上;提供類(lèi)所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法

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

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

  @Log4j :注解在類(lèi)上;為類(lèi)提供一個(gè) 屬性名為log 的 log4j 日志對(duì)象

  @NoArgsConstructor:注解在類(lèi)上;為類(lèi)提供一個(gè)無(wú)參的構(gòu)造方法

  @AllArgsConstructor:注解在類(lèi)上;為類(lèi)提供一個(gè)全參的構(gòu)造方法

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

關(guān)于java中spring都有哪些注解就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI