spring 註解可以減少xml配置;註釋配置相對於 XML 配置具有很多的優勢:它可以充分利用 Java 的反射機制獲取類結構信息,這些信息可以有效減少配置的工作。如使用JPA 註解配置ORM 映射時,我們就不需要指定PO 的屬性名稱、類型等信息,如果關係表字段和PO 屬性名、類型都一致,您甚至無需編寫任務屬性映射信息——因為這些信息都可以透過Java 反射機制來取得。
推薦課程:Java教學。
使用註解之前要開啟自動掃描功能
#其中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中文網其他相關文章!