亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Spring框架IOC容器

CoderStudy / 693人閱讀

摘要:簡(jiǎn)單來(lái)說(shuō),是一個(gè)輕量級(jí)的控制反轉(zhuǎn)和面向切面的容器框架。的基本框架主要包含六大模塊??梢耘c框架整合。在中是容器的實(shí)際代表者。依賴(lài)注入在容器創(chuàng)建對(duì)象后,處理對(duì)象的依賴(lài)關(guān)系。

目錄

1. Spring開(kāi)源框架的簡(jiǎn)介

2. Spring下IOC容器和DI(依賴(lài)注入Dependency injection)

一、Spring開(kāi)源框架的簡(jiǎn)介

??Spring是一個(gè)開(kāi)源框架,也是于2003 年興起的一個(gè)輕量級(jí)的Java 開(kāi)發(fā)框架,由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中闡述的部分理念和原型衍生而來(lái)。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。

??Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。

??spring的基本框架主要包含六大模塊:DAOORM、AOP、JEEWEB、CORE。

  

Spring DAO:Spring提供了對(duì)JDBC的操作支持:JdbcTemplate模板工具類(lèi) 。
Spring ORM:Spring可以與ORM框架整合。例如Spring整合Hibernate框架,其中Spring還提供HibernateDaoSupport工具類(lèi),簡(jiǎn)化了Hibernate的操作 。
Spring WEB:Spring提供了對(duì)Struts、Springmvc的支持,支持WEB開(kāi)發(fā)。與此同時(shí)Spring自身也提供了基于MVC的解決方案 。
Spring AOP:Spring提供面向切面的編程,可以給某一層提供事務(wù)管理,例如在Service層添加事物控制 。
Spring JEE:J2EE開(kāi)發(fā)規(guī)范的支持,例如EJB 。
Spring Core:提供IOC容器對(duì)象的創(chuàng)建和處理依賴(lài)對(duì)象關(guān)系 。

二、Spring下IOC容器和DI(依賴(lài)注入Dependency injection)

??IOC容器:就是具有依賴(lài)注入功能的容器,是可以創(chuàng)建對(duì)象的容器,IOC容器負(fù)責(zé)實(shí)例化、定位、配置應(yīng)用程序中的對(duì)象及建立這些對(duì)象間的依賴(lài)。通常new一個(gè)實(shí)例,控制權(quán)由程序員控制,而"控制反轉(zhuǎn)"是指new實(shí)例工作不由程序員來(lái)做而是交給Spring容器來(lái)做。。在Spring中BeanFactory是IOC容器的實(shí)際代表者。

??DI(依賴(lài)注入Dependency injection) :在容器創(chuàng)建對(duì)象后,處理對(duì)象的依賴(lài)關(guān)系。

??依賴(lài)注入spring的注入方式:

set注入方式

靜態(tài)工廠注入方式

構(gòu)造方法注入方式

基于注解的方式

??1、set注入方式:
?控制層代碼:

private OrderServiceImp orderService;
    
public void setOrderService(OrderServiceImp orderService) {
       this.orderService = orderService;
}

Spring配置XML文件:其中配置聲明OrderAction類(lèi)存在屬性orderService。程式運(yùn)行時(shí)候,會(huì)將已經(jīng)實(shí)例化的orderService對(duì)象調(diào)用setOrderService方式注入。


        

??2、構(gòu)造器注入方式:
?控制層代碼:

private OrderServiceImp orderService;
    
public OrderAction(OrderServiceImp orderService) {
        this.orderService = orderService;
    }

?Spring配置XML文件:


      

??3、基于注解的方式(推薦使用,比較便捷少配置

?控制層代碼:

@Autowired   //@Resource
private OrderServiceImp orderService;

?服務(wù)層代碼:

@Service("orderService")
public class OrderServiceImp implements IOrderService {

    @Autowired
    private JavaOrderMDaoImp javaOrderMDao;

    @Autowired
    private JavaOrderDDaoImp javaOrderDDao;

    @Override
    public List findOrderM(OrderSearch search) {
        return javaOrderMDao.findJavaOrderM(search);
    }

    @Override
    public List findOrderD(OrderSearch search) {
        return javaOrderDDao.findJavaOrderD(search);
    }

}

?DAO層代碼:

@Repository("javaOrderMDao")
public class JavaOrderMDaoImp extends BaseHibernateDAO implements IJavaOrderMDao {...}
@Repository("javaOrderDDao")
public class JavaOrderDDaoImp extendsBaseHibernateDAO implements IJavaOrderDDao {...}

?注意點(diǎn):

??⑴ 持久層DAO層注解Repository中規(guī)定了名稱(chēng),在Service層中聲明名稱(chēng)必須一致。

??⑵ 服務(wù)層Service層注解Service中規(guī)定了名稱(chēng),在控制層中聲明的名稱(chēng)必須一致。

??⑶ 注解方式注入依賴(lài)注解:

@Component         把對(duì)象加入ioc容器,對(duì)象引用名稱(chēng)是類(lèi)名,第一個(gè)字母小寫(xiě)
@Component(“name”) 把指定名稱(chēng)的對(duì)象,加入ioc容器
@Repository        主要用于標(biāo)識(shí)加入容器的對(duì)象是一個(gè)持久層的組件(類(lèi))
@Service           主要用于標(biāo)識(shí)加入容器的對(duì)象是一個(gè)業(yè)務(wù)邏輯層的組件
@Controller        主要用于標(biāo)識(shí)加入容器的對(duì)象是一個(gè)控制層的組件
@Resource          注入屬性(DI), 會(huì)從容器中找對(duì)象注入到@Resource修飾的對(duì)象上
@Autowired         注入屬性(DI), 會(huì)從容器中找對(duì)象注入到@Autowired修飾的對(duì)象上

??⑷?注解可以簡(jiǎn)化配置,提升開(kāi)發(fā)效率,但是也不利于后期維護(hù)。

?注:@Autowired與@Resource的區(qū)別

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/71763.html

相關(guān)文章

  • Spring框架學(xué)習(xí)筆記(一):官方文檔介紹,IoC與AOP概念學(xué)習(xí)

    摘要:構(gòu)造函數(shù)注入通過(guò)調(diào)用類(lèi)的構(gòu)造函數(shù),將接口實(shí)現(xiàn)類(lèi)通過(guò)構(gòu)造函數(shù)變量傳入。而在中,其使用橫切技術(shù),將這類(lèi)代碼從原屬的封裝對(duì)象中提取出來(lái),封裝到一個(gè)可重用模塊中,稱(chēng)為。 最近實(shí)習(xí)用到Spring的開(kāi)發(fā)框架,但是之前沒(méi)有接觸過(guò),因此希望利用網(wǎng)上的資源來(lái)學(xué)習(xí)以下。 Spring官方給出了非常全面的介紹,非常適合我這種完全的小白……在這一系列學(xué)習(xí)中,我閱讀的主要資源是5.1.2 Reference ...

    mindwind 評(píng)論0 收藏0
  • Spring 的基本應(yīng)用——IoC 和 AOP

    摘要:的兩大核心機(jī)制是控制反轉(zhuǎn)和面向切面編程,對(duì)于初學(xué)者來(lái)講,搞清楚這兩個(gè)核心機(jī)制就掌握了的基本應(yīng)用。配置對(duì)象張三添加標(biāo)簽對(duì)應(yīng)屬性名,是屬性的值。若包含特殊字符,比如張三,使用張三進(jìn)行配置,如下所示。 前言 對(duì)于任何一個(gè) Java 開(kāi)發(fā)人員,Spring 的大名一定如雷貫耳,在行業(yè)中可謂是無(wú)人不知、無(wú)人不曉,說(shuō)它是 Java 領(lǐng)域第一框架毫不為過(guò)。 showImg(https://segme...

    DirtyMind 評(píng)論0 收藏0
  • Spring入門(mén)看這一篇就夠了

    摘要:甲乙交易活動(dòng)不需要雙方見(jiàn)面,避免了雙方的互不信任造成交易失敗的問(wèn)題。這就是的核心思想。統(tǒng)一配置,便于修改。帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建對(duì)象首先,就要提供帶參數(shù)的構(gòu)造函數(shù)接下來(lái),關(guān)鍵是怎么配置文件了。 前言 前面已經(jīng)學(xué)習(xí)了Struts2和Hibernate框架了。接下來(lái)學(xué)習(xí)的是Spring框架...本博文主要是引入Spring框架... Spring介紹 Spring誕生: 創(chuàng)建Spring的...

    superw 評(píng)論0 收藏0
  • Spring IOC知識(shí)點(diǎn)一網(wǎng)打盡!

    摘要:使用的好處知乎的回答不用自己組裝,拿來(lái)就用。統(tǒng)一配置,便于修改。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡(jiǎn)單啦 單例模式你會(huì)幾種寫(xiě)法? 工廠模式理解了沒(méi)有? 在刷Spring書(shū)籍的時(shí)候花了點(diǎn)時(shí)間去學(xué)習(xí)了單例模式和工廠模式,總的來(lái)說(shuō)還是非常值得的! 本來(lái)想的是刷完《Spring 實(shí)戰(zhàn) (第4版)》和《精通Spring4.x 企業(yè)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)》...

    djfml 評(píng)論0 收藏0
  • 徒手?jǐn)]框架--實(shí)現(xiàn)IoC

    摘要:從而能夠進(jìn)一步深入了解框架。至此我們框架開(kāi)發(fā)完成。雖然說(shuō)閱讀源碼是了解框架的最終手段。但是框架作為一個(gè)生產(chǎn)框架,為了保證通用和穩(wěn)定,源碼必定是高度抽象,且處理大量細(xì)節(jié)。下一篇文章應(yīng)該會(huì)是徒手?jǐn)]框架實(shí)現(xiàn)。 原文地址:https://www.xilidou.com/2018/... Spring 作為 J2ee 開(kāi)發(fā)事實(shí)上的標(biāo)準(zhǔn),是每個(gè)Java開(kāi)發(fā)人員都需要了解的框架。但是Spring 的...

    rottengeek 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<