您好,登錄后才能下訂單哦!
小編給大家分享一下初始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開發可以將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,面向對象編程)的補充,屬于一種橫向擴展。其將與核心業務無關的代碼,如日志記錄、性能監控、事務處理等從業務邏輯代碼中抽離出來,進行橫向排列,從而實現低耦合,提高開發效率。
加載類路徑下的beans.xml 文件
通過配置文件完成對bean的初始化
掃描路徑下org.example添加四個注解的類
四個注解都可以用來將當前的類注入到bean中去、將類交給spring來托管。
@Component是基礎注解,表示一個 JavaBean 可以被注入到 Spring 容器中。
為了更好的表示 Web 服務中的三層結構,所以就額外的引出了另外的三種注解分別用在三層結構中進行標注:
@Controller 用在表現層,對來自前端的請求進行轉發處理與重定向。
@Repository 用在持久層,標注 DAO 類,表示這個類可以對數據庫進行數據的讀取或者寫入。
@Service 用在業務層,用來處理業務邏輯。
引入后三個注解之后,就實現了將處理前端請求、處理業務邏輯、處理數據庫讀寫這三個基本任務進行了解耦,方便程序的編寫和項目維護。
也可以使用@Bean注解
當前類被 Spring 掃描到時,可以在方法上使用 @Bean 注解,通過方法返回類型,也可以定義、注冊Bean對象,默認使用方法名作為Bean的名稱。
@Configuration
在類被Spring掃描到時,使用 @Configuration 注解,可以注冊一個配置類到容器中。配置類一般用來
可以使用FactoryBean接口:先定義一個Bean,實現FactoryBean接口,指定泛型為要注冊的類,通過getObject方法的返回
可以在屬性上使用 @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的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。