91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

初始Spring的示例分析

發布時間:2021-08-08 19:40:27 來源:億速云 閱讀:384 作者:小新 欄目:開發技術

小編給大家分享一下初始Spring的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

為什么要使用Spring

Why Spring?

Spring makes programming Java quicker, easier, and safer for everybody. Spring's focus on speed,

simplicity, and productivity has made it the world's most popular Java framework

Spring概述

Spring是一種輕量級的、開源的框架。

Spring為簡化企業級開發而生,使用Spring開發可以將Bean對象,Dao組件對象,Service組件對象等交給Spring容器來管理,這樣使得很多復雜的代碼在Spring中開發卻變得非常的優雅和簡潔,有效的降低代碼的耦合度,極大的方便項目的后期維護、升級和擴展。

Spring是一個IOC(DI)和AOP容器框架。

Spring的優良特性

非侵入式:基于Spring開發的應用中的對象可以不依賴于Spring的API

控制反轉:IOC——Inversion of Control,指的是將對象的創建權交給Spring去創建。使用Spring之前,對象的創建都是由我們自己在代碼中new創建。而使用Spring之后。對象的創建都是由給了Spring框架。

依賴注入:DI——Dependency Injection,是指依賴的對象不需要手動調用setXX方法去設置,而是通過配置賦值。

面向切面編程:Aspect Oriented Programming——AOP

容器:Spring是一個容器,因為它包含并且管理應用對象的生命周期

組件化:Spring實現了使用簡單的組件配置組合成一個復雜的應用。在 Spring 中可以使用XML和Java注解組合這些對象。

一站式:在IOC和AOP的基礎上可以整合各種企業應用的開源框架和優秀的第三方類庫(實際上Spring 自身也提供了表述層的SpringMVC和持久層的Spring JDBC)

IOC
IOC 是一種設計的思想,使用這種的設計的思想實現的框架就是IOC容器、通過這個容器可以實現對bean的管理、也就是對對象的生命周期的管理、也可以管理對象之間的依賴關系。IOC 是Spring用來實現對象的創建的、也就是將對象的創建交給Spring來實現的、降低了類和類之間的耦合度。
IOC 的 思想依賴于IOC容器的來實現的,IOC的底層就是對象工廠。
Spring提供了兩種實現IOC的方法、一種是BeanFactroy來實現的、一種是ApplicationContext來是實現的。
IOC的底層原理:IOC的底層就是使用xml、工廠模式、反射的技術來實現。

DI
實現了IoC思想的容器就是IoC容器,比如:SpringFremework, Guice(Google開源的輕量級DI框架)

AOP
AOP(Aspect-Oriented Programming,面向切面編程)是對傳統傳統 OOP(Object-Oriented Programming,面向對象編程)的補充,屬于一種橫向擴展。其將與核心業務無關的代碼,如日志記錄、性能監控、事務處理等從業務邏輯代碼中抽離出來,進行橫向排列,從而實現低耦合,提高開發效率。

Spring容器使用流程

1.啟動容器

加載類路徑下的beans.xml 文件

初始Spring的示例分析

2.完成bean的初始化

通過配置文件完成對bean的初始化

初始Spring的示例分析

掃描路徑下org.example添加四個注解的類

初始Spring的示例分析

3.注冊bean到容器中

初始Spring的示例分析

初始Spring的示例分析

4.裝配bean的屬性

初始Spring的示例分析

bean的注冊

四個注解都可以用來將當前的類注入到bean中去、將類交給spring來托管。
@Component是基礎注解,表示一個 JavaBean 可以被注入到 Spring 容器中。
為了更好的表示 Web 服務中的三層結構,所以就額外的引出了另外的三種注解分別用在三層結構中進行標注:
@Controller 用在表現層,對來自前端的請求進行轉發處理與重定向。
@Repository 用在持久層,標注 DAO 類,表示這個類可以對數據庫進行數據的讀取或者寫入。
@Service 用在業務層,用來處理業務邏輯。
引入后三個注解之后,就實現了將處理前端請求、處理業務邏輯、處理數據庫讀寫這三個基本任務進行了解耦,方便程序的編寫和項目維護。
也可以使用@Bean注解
當前類被 Spring 掃描到時,可以在方法上使用 @Bean 注解,通過方法返回類型,也可以定義、注冊Bean對象,默認使用方法名作為Bean的名稱。
@Configuration
在類被Spring掃描到時,使用 @Configuration 注解,可以注冊一個配置類到容器中。配置類一般用來
可以使用FactoryBean接口:先定義一個Bean,實現FactoryBean接口,指定泛型為要注冊的類,通過getObject方法的返回

bean屬性注入

可以在屬性上使用 @Autowired 注解
也可以使用setter方法上使用 @Autowired 注解
也能使用構造方法注入
使用 @Qualifier(“名稱”) 注解、注入指定的bean

@Controller
public class LoginController {
    //    第一種注解的方式屬性注入
    //     @Autowired
    @Resource
    private LoginService loginService;

    //第二種的注入的方式使用set方法來實現注入
    public void setLoginService(LoginService loginService) {
        this.loginService = loginService;
    }
    //第三中的方法、使用構造函數來實現注入、使用構造函數的方式來實現注入的話、不需要@Autowire注解
    public LoginController(LoginService loginService) {
        this.loginService = loginService;
    }
    public void say() {
        loginService.say();
    }
    @Bean
    public User user1() {
        User user = new User();
        user.setName("ni");
        ;
        user.setPassword("wo");
        return user;
    }
    @Bean
    public User user2() {
        User user = new User();
        user.setName("y");
        user.setPassword("y");
        return user;
    }
}

以上是“初始Spring的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海盐县| 来安县| 务川| 二连浩特市| 武汉市| 宁国市| 仪征市| 舞钢市| 伊金霍洛旗| 营口市| 江北区| 扬中市| 烟台市| 琼结县| 平定县| 南郑县| 沧源| 长葛市| 朝阳市| 宜昌市| 济宁市| 新和县| 大宁县| 沧州市| 壶关县| 图片| 伊宁县| 江达县| 仁寿县| 武川县| 博湖县| 淮阳县| 柏乡县| 金阳县| 通州市| 康马县| 漯河市| 友谊县| 屏边| 淳安县| 咸阳市|