1. 程式人生 > >Spring學習筆記-1:Spring裝配

Spring學習筆記-1:Spring裝配

一直再用Spring,但是僅限於使用,也沒有系統學習過,最近抽空開始系統學些一下,以spring in action作為參考,以下內容大部分摘自spring in action,僅限於自己學習。

1.裝配

建立物件之間的協作關係稱為裝配,這是依賴注入的本質
Spring容器負責建立bean,並通過DI來協調物件之間的關係。
Spring有三種裝配機制:

1)XML中進行顯式配置 
2)在Java中進行配置 
3)隱式的bean發現機制和自動裝配

2.Spring自動裝配bean

1)自動掃描:自動發現應用上下文中建立的bean
2)自動創配:Spring自動滿足bean之間的依賴

自動化裝配bean:

@Component("name"):表明該類會作為元件類,name表示元件bean的名字,@Component可以用Java依賴注入規範中的@Name("name")替換
@ComponentScan(basePackageClasses={xxxx1.class}):Spring中啟用元件掃描(預設掃描與配置相同的包),對應於XML中<context:component-scan>元素,其中basePackageClasses可用basePackages="com.xx.aaa"(包名)替代

由於過程中用到了Junit模擬Spring環境,載入Spring容器,順帶兩個註解:

@RunWith(SpringJunit4ClassRunner.class):便於在測試開始的時候自動建立Spring的應用上下文(模擬Spring環境)
@ContextConfiguration(classes=xxxx.class):表明需要在xxx中載入配置(配置檔案(Java或者XML檔案))

實現自動裝配:
@AutoWired:可以用在任何方法上(以下是三種方式)

        @AutoWired
        private CDPlayer cd;
        @AutoWired
        public CDPlayer(CompactDisc cd){
            this.cd = cd;
        }
        //注入Name物件
        @AutoWired
        public void setName(Name name){
            this.name = name;
        }

@Inject可以替代@Autowired

3.Java程式碼裝配Bean
當我們裝配的元件來自第三方時,無法用註解裝配,此時需要顯式配置,推薦使用JavaConfig(不是XML),因為其更強大、安全、對重構友好
@Configuration:表明這個類是一個配置類
@Bean(name=”xxx”):對應的方法會返回一個bean物件,預設與帶有該註解的方法名一致
在JavaConfig中裝配bean的方式:引用建立bean的方法

        @Bean
        public CDPlayer cdPlayer(){
            return new CDPlayer(compactDisc());
        }
        //使CompactDisc作為方法引數(推薦,不必須在同一個配置類中)
        @Bean
        public CDPlayer cdPlayer(CompactDisc cd){
            return new CDPlayer(cd);
        }

JavaConfig可以使用任何必要的Java功能產生bean例項。

以上僅是個人總結自Spring in Action。

相關推薦

Spring學習筆記-1:Spring裝配

一直再用Spring,但是僅限於使用,也沒有系統學習過,最近抽空開始系統學些一下,以spring in action作為參考,以下內容大部分摘自spring in action,僅限於自己學習。 1.裝配 建立物件之間的協作關係稱為裝配,這是依賴注入的本質

Spring學習筆記(1)

作用域 構造器 上下文 實例 pojo bean 不同的 宋體 單例 激發pojo的潛能,不會讓pojo類繼承實現或導入與Spring API相關的任何東西 那麽spring怎麽裝配pojo呢-------->依賴註入(最大好處:松耦合) 耦合具有兩面性: 一方面

Spring 學習筆記1--三種例項化Bean方法、註解

首先通過一個簡單的程式學習Spring在程式中的運用。 定義一個介面: package com.spring.interfacebean; public interface PersonBean { void show(); } 這個介面的實現類:

Spring MVC學習筆記1——Spring MVC 簡介

什麼是Spring MVC Spring MVC是Spring框架的一個模組,Spring MVC和Spring無需通過中間整合層進行整合。 Spring MVC是一個基於MVC的web框架。 Spring MVC框架原理 發起請求到前端控制器(Dispat

Spring學習筆記1Spring Framewock體系結構 及 jar包依賴

作者:凌承一  出處:http://www.cnblogs.com/ywlaker/  很多人都在用spring開發java專案,但是配置maven依賴的時候並不能明確要配置哪些spring的jar,經常是胡亂新增一堆,編譯或執行報錯就繼續配置jar依賴,導致spring依賴

Spring學習筆記-1:SpringMVC hello world

個人部落格站已經上線了,網址 www.llwjy.com ~歡迎各位吐槽~-------------------------------------------------------------------------------------------------   

Spring學習筆記之自動化裝配Bean

在Spring中可以使用Java程式碼、XML和自動化裝配三種方式來裝配Bean。從便利性角度來說,最強大的還是Spring的自動化配置,如果Spring能夠進行自動化裝配的話,那何苦還要顯式的將這些Bean裝配在一起呢? Spring從兩個角度來實現自動化裝配: 元件

spring學習筆記(一) Spring概述

數據庫 spring容器 oot 基礎知識 spa 遠程 組合 主動 拓展 博主Spring學習筆記整理大部分內容來自Spring實戰(第四版)這本書. 強烈建議新手購入或者需要電子書的留言. 在學習Spring之前,我們要了解這麽幾個問題:什麽是Spring?Sprin

Spring學習筆記Spring中Application Context和Servlet Context的區別

1. Servlet Context It is initilized when an servlet application is deployed. Servlet Context holds all the configurations (init

spring學習筆記spring mvc不得不說的幾處配置

通常情況下會有這麼幾個配置檔案:web.xml, applicationContext.xml, xxxx-servlet.xml, 在web.xml中通常會這麼配置DispatcherServlet:<servlet> <servlet-name>

Spring學習筆記Spring MVC的高階技術

本篇主要介紹利用Spring MVC處理檔案上傳,異常處理,為控制器新增通知以及跨重定向請求傳遞資料。 1.Spring MVC處理檔案上傳 1.1使用multipart格式提交表單 在有檔案上傳的表單中,我們需要使用multipart格式的資料來

Spring學習筆記 關於Spring建立Bean的模式-Singleton(單例模式)和Prototype

剛開始接觸Spring的時候一些基礎的教學在說到Bean的建立時會提到Spring的單例模式,就是說預設情況下Spring中定義的Bean是以單例模式建立的。如果以前瞭解設計模式中的單例模式的話很容易對這種說法產生先入為主的印象。事實上,Spring中的單例模式還有許多需要

Spring 學習筆記(五)—— Bean之間的關系、作用域、自動裝配

mar byname pps etc 有時 sysman 對象實例 構造 encoding 繼承   Spring提供了配置信息的繼承機制,可以通過為<bean>元素指定parent值重用已有的<bean>元素的配置信息。 <?xml

Spring源碼學習筆記1

ror .... AD amr pen return 接口 throw final 1.Spring中最核心的兩個類 1)DefaultListableBeanFactory   XmlBeanFactory繼承自DefaultListableBeanFactory,Def

spring (4.0.2)——(尚矽谷)學習筆記1

aspect 什麽 企業應用 周期 持久層 非侵入 mvc 註入 JD 1、Spring是什麽?   ①Spring 是一個開源框架;   ②Spring 為簡化企業級應用開發而生。使用Spring可以使簡單的JavaBean實現以前只有EJB才能實現的功能。   ③Spr

spring MVC初始化過程學習筆記1

load cati 過程 mage 筆記 ngx 名稱 spring -s 如果有錯誤請指正~ 1.springmvc容器和spring的關系? 1.1 spring是個容器,主要是管理bean,不需要servlet容器就可以啟動,而springMVC實現了servl

Spring boot 學習筆記 1 - 自定義錯誤

note ride 覆蓋 ide rac med exception cat 異常 Spring Boot提供了WebExceptionHandler一個以合理的方式處理所有錯誤的方法。它在處理順序中的位置就在WebFlux提供的處理程序之前,這被認為是最後一個處理程序。

1.Spring學習筆記之 ———— Bean的例項化

    什麼是Bean的例項化?     在面向物件的程式中,想要使用某個物件,就需要先例項化這個物件。Spring中,想要使用容器中的Bean,也需要例項化Bean。     其類似於當我們需要建立一個類物件而去new這個類一樣。通常來說,當我們需要用到一個Bean的時

spring學習筆記(13)——註解Autowired自動裝配

使用Autowired 一般情況下,controller和service是有關聯關係的,service和DAO層是有關聯關係的,我們使用autowired註解,在controller中裝配servi

Spring Boot學習筆記1——搭建一個簡單的Spring Boot專案

1.建立一個Maven專案匯入相應的依賴 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio