spring與jsr-250註解學習
1.參考書1 ---------------《精通 spring 2.x—企業應用開發精解》
前言:要使用註解,spring 的配置檔案得到了極大的簡化,只需要加入下面兩個命名空間即可
base-package
="testspring.main"
/>
那是不是我們有了註解了以後就可以完全不使用xml配置檔案了呢,答案是否定的,因為有如下原因:
1.如果 bean 不是自己編寫的類(如 jdbctemplate、sessionfactorybean 等),注釋配置將無法實施,此時 xml 配置是唯一可用的方式。
2.在第三方類 bean 的配置,以及那些諸如資料來源、快取池、持久層操作模板類、事務管理等內容的配置上,xml 配置依然擁有不可替代的地位。
所以我們應該是合理的使用註解,增加程式的內聚性,同時結合使用xml配置檔案,達到快速開發的效果。
spring註解學習
1.@restcontroller}相當於@controller和@requestbody 連個一起使用,使用@restcontroller不需要返回具體的前端頁面,可以返回字串。
由於大量專案都會在主要的配置類上新增@configuration,@enableautoconfiguration,@componentscan
三個註解。
因此spring boot提供了
註解,該註解可以替代上面三個註解(使用spring註解繼承實現)。
3.@resource是jsr-250 規範定義的註解。 @resource 的作用相當於 @autowired,只不過 @autowired 按 bytype 自動注入,面 @resource 預設按 byname 自動注入罷了。@resource 有兩個屬性是比較重要的,分別是 name 和 type。
要讓 jsr-250 的注釋生效,除了在 bean 類中標註這些注釋外,還需要在 spring 容器中註冊乙個負責處理這些注釋的 beanpostprocessor:
commonannotationbeanpostprocessor 實現了 beanpostprocessor 介面,它負責掃瞄使用了 jsr-250 注釋的 bean,並對它們進行相應的操作。
@postconstruct 和 @predestroy 也是jsr-250 規範定義的註解。他們分別表示bean的生命週期的開始和銷毀,可以定義相應的操作,他們一般都是註解在方法之上的。關於更多的細節可以看 *****參考書1。
4.@component註解
@component 有乙個可選的入參,用於指定 bean 的名稱。形如:@component("car"),表示定義的bean的name=car.一般情況下,bean 都是 singleton 的,需要注入 bean 的地方僅需要通過 bytype 策略就可以自動注入了,所以大可不必指定 bean 的名稱。
預設情況下通過 @component 定義的 bean 都是 singleton 的,如果需要使用其它作用範圍的 bean,可以通過 @scope 注釋來達到目標。@scope("prototype")。
spring容器最初提供了兩種bean的scope型別:singleton和prototype,但發布2.0以後,又引入了另外三種scope型別:request、session和global session,這三種只能在web 應用中才可以使用。
singleton: spring 容器只會建立該bean定義的唯一例項,這個例項會被儲存到快取中,並且對該bean的所有後續請求和引用都將返回該快取中的物件例項,一般情況下,無狀態的bean使用該scope。
prototype:每次對該bean的請求都會建立乙個新的例項,一般情況下,有狀態的bean使用該scope。
request:每次http請求將會有各自的bean例項,類似於prototype。
session:在乙個http session中,乙個bean定義對應乙個bean例項。
global session:在乙個全域性的http session中,乙個bean定義對應乙個bean例項。典型情況下,僅在使用portlet context的時候有效。
5.spring 2.5 中除了提供 @component 注釋外,還定義了幾個擁有特殊語義的注釋,它們分別是:@repository、@service 和 @controller。在目前的 spring 版本中,這 3 個注釋和 @component 是等效的,但是從注釋類的命名上,很容易看出這 3 個注釋分別和持久層、業務層和控制層(web 層)相對應。雖然目前這 3 個注釋和 @component 相比沒有什麼新意,但 spring 將在以後的版本中為它們新增特殊的功能。所以,如果 web 應用程式採用了經典的三層分層結構的話,最好在持久層、業務層和控制層分別採用 @repository、@service 和 @controller 對分層中的類進行注釋,而用 @component 對那些比較中立的類進行注釋。
jsr-250
規範定義的注釋
jsr註解學習待續
PTA 結繩 25分 25分???
給定一段一段的繩子,你需要把它們串成一條繩。每次串連的時候,是把兩段繩子對折,再如下圖所示套接在一起。這樣得到的繩子又被當成是另一段繩子,可以再次對折去跟另一段繩子串連。每次串連後,原來兩段繩子的長度就會減半。給定 n 段繩子的長度,你需要找出它們能串成的繩子的最大長度。每個輸入包含 1 個測試用例...
25歲,何去何從?
我,87年生,乙個女程式設計師。至今也工作也已有3年多,按理說,3年不多不長,工作應該是挺穩定了。但是軟體行業你也知道,分分鐘都有公司興起,分分鐘都有公司倒閉。最近移動行業變數很大,昔日的巨頭風光不在,如今正在風頭的幾家你死我活的互相較著勁。年歲漸長,也是一直在焦慮著以後該往哪個方向走,從工作到現在...
完美數列 25
時間限制 300 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 cao,peng 給定乙個正整數數列,和正整數p,設這個數列中的最大值是m,最小值是m,如果m m p,則稱這個數列是完美數列。現在給定引數p和一些正整數,請你從中選擇盡可能多的數構成乙個...