本文目錄一覽:
Java註解的出現 Java的註解是從何開始的
我不知道知道誰發明了註解,但是可以告訴你,java不同版本間的功能定義是不同的。這個功能的定義不是個人決定的,而是一個叫做JCP的組織,
這個組織雲集了眾多的資深專家,包括頂級開發團隊中的精英。從java5開始出現了註解這個概念。定義註解的標準是JSR-250。註解從一定程度上分擔了xml配置的一些任務(配套的標準如:JPA)。甚至可以在項目中用純註解來配置。幾乎所有的主流框架(除了struts1)都有自己的一套註解。追溯註解的源頭,我個人認為,註解的前身就是我們看到的注釋文檔。標準的注釋文檔中有包括@author等的標註。在註解之前我們可以用Xdoclet來進行項目的配置。可惜這一方法幾乎沒有得到應用。但是註解的出現改變了這一現狀。註解易於定義,包括本身就是java,提供了很好的編譯器支持。我們可以用註解配置對象。這個是xml文件無法做到的。因為註解的易配置性和強靈活性,還有對代碼的執行並不產生影響。註解得到了廣泛的應用。現在,新的項目開發都開始傾向於註解這種新的開發方式,在開發的效率和糾錯性上面。他已經遠遠優於xml配置。加上主流框架的支持及其它的易於實現性。相信他會走的更好。
Java中使用註解和使用配置文件各有什麼優缺點
什麼時候用xml:配置文件
1.外部jar包依賴bean配置
2.用註解無法實現,或者用註解無法輕易實現的情形
3.項目組內部達成一致的約定的地方
4.特殊的配置(如:定義一個map)
優:容易編輯,配置比較集中,方便修改,在大業務量的系統裡面,通過xml配置會方便後人理解整個系統的架構
缺:比較繁瑣,類型不安全,配置形態醜陋,配置文件過多的時候難以管理
========================================
什麼時候用註解
除了上面4點,其他情況都可以用
優:方便,簡潔,配置信息和 Java 代碼放在一起,有助於增強程序的內聚性。
缺:分散到各個class文件中,所以不宜維護
什麼是基於java的spring註解配置
基於Java的配置,允許你在少量的Java註解的幫助下,進行你的大部分
Spring配置而非通過XML文件。以@Configuration 註解為例,它用來標記類可以當做一個
bean的定義,被Spring IOC容器使用。另一個例子是@Bean
註解,它表示此方法將要返回一個對象,作為一個bean註冊進Spring應用上下文。
怎麼動態給java註解參數賦值?
動態賦值指的是在配置文件配置好然後在項目中動態讀取?如果是這樣的話:
1.在xml文件中使用context:property-placeholder location=”」/
這種方式可以讀取location指定位置對應的文件,引用的話使用${key}可以獲取對應的數據
和這種寫法相同的還有
bean class=「com.spring….config.PropertyPlaceholderConfigurer」
property name=「locations”
arrayvalue/value/array
/property
bean
這種是用bean來載入配置文件,看起來更直觀
2.通過@Value註解讀取配置
這種方法也需要預先在xml文件中設定好配置文件的位置
bean id=「prop」 class=「org.springframework.beans.factory.config.PropertiesFactoryBean」
property name=「locations」
array
valueclasspath:.properties/value
/array
/property
/bean
之後在java代碼裡面可以用#{prop.key}來獲取對應的數據prop是bean的名字,key是配置文件的鍵。
3.使用@PropertySource
在springboot中,可以不需要xml文件來設置配置文件,在需要使用配置文件的類名字前加上
@PropertySource(「locations”)就可以讀取指定位置的配置,在代碼中使用@Value註解可以獲取這些數據
@Value(value = 「${key}」)
4.使用@ConfigurationProperties(prefix=「」)
SpringBoot項目有時候會使用application.yml來存儲配置信息,一般情況下這些數據的存儲格式是
a:
key1:value1
key2:value2
這種嵌套方式,當然可以多層嵌套
在需要使用配置文件的類上面使用@ConfigurationProperties(prefix=「a」)可以獲取a標籤下一層所有的配置的鍵值對。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129946.html