spring自動注入之註解解析
spring的IOC主要做兩件事:建立bean和注入bean;相比較xml配置的方式使用標註自動注入比較簡單,
首先,建立bean的標註;
@Component(不推薦使用)、
泛指元件,也就是所有需要自動注入的元件都可以;為了專案架構整潔一般標註不屬於下面三類的元件。
@Repository、
用於標註資料訪問元件,即DAO元件
@Service、
用於標註業務層元件
@Controller 、
用於標註控制層元件(如struts中的action)
需要特別說明的是,後面三個註解與前一個並沒有太多差別,詳見http://blog.csdn.net/zhang854429783/article/details/6785574;
再者就是注入bean的標註;也就是表明自己是注入的入口方法,
@Autowired:可以對成員變數、方法和建構函式進行標註,來完成自動裝配的工作,預設按照型別注入,如果沒有找到會報異常。次註解標註變數時spring會把對應的bean賦值給當前bean的變數,不需要set方法,這樣做會破壞java的封裝性當可以消除get,set方法。標註方法和構造方法相當於以上下文找到的bean為引數執行此方法。
@Resource:位置和前者一樣,這個註解相對與前者功能更全面,本身擁有name和type兩個屬性,根據這兩個去選擇bean如果都沒有設定則以欄位名或者方法的屬性名來選擇;
需要特別說明的是前者是spring標籤,後者是j2ee的標註。
相關推薦
spring自動注入之註解解析
spring的IOC主要做兩件事:建立bean和注入bean;相比較xml配置的方式使用標註自動注入比較簡單, 首先,建立bean的標註; @Component(不推薦使用)、 泛指元件,也就是所有需
spring自動裝配之@Qualifier註解的使用
當存在兩個型別一致的bean時,將會有什麼情況出現。我們一起來看看下面的例子:例子說明:如果已經看了上一篇教程,可以直接跳到第二步第一步:建立beanCustomer類package com.main.autowrite.autowired.annotation; imp
Spring自動注入,利用註解實現spring基本配置詳解,Spring註解快速入門
Spring註解 1.準備工作 (1)匯入common-annotations.jar (2)匯入schema檔案 檔名為spring-context-3.0.3.RELEASE.jar (3)在xml的beans節點中配置 2.xml配置工作 <?xml
spring自動掃描的註解@Component @Controller @Service @Repository
改變 包括 alt init 實例 gda context nts str @Component @Controller @Service @Repository的作用 1、@controller 控制器(註入服務)2、@service 服務(註入dao)3、@reposi
Spring Boot2.0之註解方式啟動Springmvc
sch 一個tomcat user use embed spring serve XML java代碼 回顧下springmvc原理圖: DispatcherServlet是Spring MVC的核心,每當應用接受一個HTTP請求,由DispatcherServl
Spring自動掃描元件註解@autowired,@service,@component,@repository
手動裝配 一個正常的 bean package com.yiibai.customer.dao; public class CustomerDAO { @Override public String toString() { return "Hello , This i
初步學習Spring Aop使用之註解方式
前言: 這裡就主要演示Spring中Aop使用註解是怎麼使用,如果需要了解更多Aop相關概念,可檢視相關資料的介紹 一、專案目錄 【標記檔案為主要檔案】 二、各個檔案的程式碼 AopServer.java 【編寫切點的檔案,就是一些需要被修飾的業務處理】 package aop; i
【死磕 Spring】----- IOC 之註冊解析的 BeanDefinition
DefaultBeanDefinitionDocumentReader.processBeanDefinition() 完成 Bean 標籤解析的核心工作,如下: protected void processBeanDefinition(Element el
屬性注入之註解(@Autowired、@Qualifier、@Resource)
@Resource和@Autowired都是做bean的注入時使用,其實@Resource並不是Spring的註解,它的包是javax.annotation.Resource,需要匯入,但是Spring支援該註解的注入。 1、共同點 兩者都可以寫在欄位和setter方
Spring 學習六 之 註解開發示例
需要一個Aspect 的類,在類上添加註解 @Aspect package com.john.aspect; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint.StaticPart;
Java之註解解析
一、註解的基本概念Java 註解就像修飾符一樣,可以用於從java程式碼中抽取文件、跟蹤程式碼中的依賴性或者在編譯時做檢查。註解可以被應用在包、類、方法、成員變數、引數和本地變數的宣告中。我們大多數人最先接觸的註解就是@Override。註解的工作原理就是,先使用註解修飾ja
java 反射 模擬spring自動注入
基於反射和註解機制,簡單模擬spring解析Autowired註解的過程。 1、自定義Autowired註解,程式碼如下 package com.basic.reflect; import java.lang.annotation.ElementType;
Spring自動裝配之byName和byType【Spring入門】
在使用Spring框架時,有些bean中有個成員變數是另一個bean。舉個實際的例子,比如說CDPlayer類(CD播放器類)中有一個屬性是CD(介面),代表著CDPlayer可以放各種CD,可以例項
java 反射,spring 自動注入原理
package com.xiaoqiang.user; public class User { private String username; private String mobile; public String getUsername() { retu
Spring自動裝配的註解用法
昨天閒來無事,調了個Spring註解的例項,挺有收穫,小Show下: 使用XML配置檔案時需要寫明要又Spring管理的例項物件的例項名和完整路徑,而這些例項的一般產生方式(單例模式)和命名(類名首字母小寫)一般挺固定,如果需要Spring管理的物件挺多的話用XML配置起來有
不同的包下有檔名相同的java類,spring自動注入會報錯
今天閒的蛋疼,做了一下spring自動注入的例子: 看看spring自動注入的是否可以區別出不同包下相同名字的java類,答案是不能,spring居然這麼渣。 整體結構圖如下: 1:首先建立兩個同名的java類和介面 com.a包下面有一個IAutoInject介面和實現
spring 自動注入和 dubbo服務呼叫問題
今天 遇到這樣一個問題: 工程A中我寫寫了一個spring security的自定義認證類,這個類始終不能由容器管理,但是這個時候 我需要通過spring 自動注入某個服務類來獲取使用者相關資訊 來進行認證) 問題出現在: 自定義認證類不是由容器管
java反射導致spring自動注入失敗
這個地方困擾了我很久,一直沒有找到答案,網上的一些回答都只是小片段很是讓人為難,這裡記錄一下自己的解決方式,免得以後忘記。首先我的spring 的bean是我通過掃描包的方式來自動注入的(com.spring.service是我的包名)<context:componen
Spring原始碼研究之註解掃描
雖然在兩年前已跟隨《Spring原始碼深度解析》一書看過Spring原始碼的核心實現, 但就註解這塊的解析一直沒有時間瞭解. 導致每次碰到此類問題時心理沒有底氣. 這種感覺著實讓人不爽, 加之距離上次閱讀原始碼已過去比較長時間了, 所以也藉機再次領略下Sp
spring 自動注入Hibernate中的SessionFactory 探索
之前用Spring的註解模式配置Hibernate的時候覺得很簡單。 使用@autowire 自動注入 @Autowired private SessionFactory sessionFactory; 然後在方法中直接使用 Session session = sessionFact