Spring總結————spring核心Core


一、spring的概念

spring是一個開源的,輕量級控制反轉和面向切面的容器框架,解決企業應用開發的復雜性,降低耦合,更易於測試。

spring春天。如果寫一個小的項目,我們可以在項目中想創建一個對象就創建i個對象,但對於大型項目來說,可能需要依賴幾百個類,類與類關系也非常復雜,我們就不能把創建對象和維護對象之間的關系放到項目中,可以采用生活中分工合作的方式,把對象的創建和維護關系給剝離出來,找一個工廠類的東西去干這些事,這樣項目如果需要對象了,就從工廠類中去取。

spring就是為了讓我們以后能夠做大的項目准備的。spring核心的功能就是一個工廠模式,spring相當於為你的項目專門成立一個工廠,這個工廠負責創建對象,委會對象之間的關系,以前是直接new,現在從spring的工廠里面獲取。

 

二、spring的bean的常用屬性

scope

scope用來配置bean對象是否是單例測試。單例模式是java的23種設計模式之一,指在這個項目運行過程中一個類的對象只會實例化一次。一般,工廠類的對象都是單例模式。非單例模式叫多例模式或者原型模式。

spring工廠中的對象默認都是單例模式,如果我們想把對象配置成多例模式,可以配置bean的scope屬性,scope常用的兩個取值:

singleon默認值 單例模式

prototype 原型模式 多例模式

單例模式下,對象是在工廠初始化的時候創建的。多例模式是在工廠初始化之后,獲取對象的時候創建的。

autowire

autowire用來配置spring對象屬性的默認的裝配方式。有三個取值

no:默認值  不啟用自動裝配

byType:根據類型自動裝配

byName:根據名稱自動裝配,一般bean的name如果不聲明  默認值取的就是id

三、spring的bean的 屬性注入的兩種方式

設值注入

設值注入要求:

要求屬性在實體類中必須有getter和setter方法,然后在spring的工廠中就可以使用property標簽進行設值注入。

構造注入

通過類的構造方法的方式注入

第一步,在要bean對應的class中創建有參的構造

第二步,在spring的工廠中配置

注:設值注入的優缺點:使用起來比較直觀,以后項目中大多數情況都采用設值注入。必須給屬性是生成getter和setter

構造注入的優缺點:不用給屬性生成getter和setter方法 了,但是看起來不太直觀。

四、spring的注解配置

使用bean的方式配置spring比較麻煩,開發中經常使用注解的方式配置spring

 1 package com.aaa.spring.entity;
 2 import org.springframework.beans.factory.annotation.Autowirimport org.springframework.stereotype.Component;
 3 import java.security.spec.DSAGenParameterSpec;
 4 /**
 5 * 組裝E470筆記本
 6 */
 7 @Component
 8 public class E470 {
 9 //這里需要依賴接口
10 //Autowired默認按類型自動裝配
11 @Autowired
12 private Display display;
13 @Autowired
14 private Cpu cpu;
15 /**
16 * 筆記本工作的方法
17 */
18 public void work(){
19 //cpu進行計算
20 cpu.calc();
21 //顯示器顯示
22 display.display();
23 }public Display getDisplay() {
24 return display;
25 }
26 public void setDisplay(Display display) {
27 this.display = display;
28 }
29 public Cpu getCpu() {
30 return cpu;
31 }
32 public void setCpu(Cpu cpu) {
33 this.cpu = cpu;
34 }
35 }

@Component注解

同我們使用bean的方式創建對象,加了@Component注解的類會在spring的工廠中創建該對象,該對象的id為@Component注解的類的名稱,但是首字母是看第二個字母的,若第二個字母是小寫,首字母小寫,第二個字母大寫,首字母就為大寫。

@Autowird自動按類型裝配

注:需要在配置文件中掃描配置@Component類所在的包

總結:

1、spring是一個容器類的框架  兩個作用:1、創建對象   2、維護對象之間的關系

2、spring的基本配置

3、常用的bean的屬性 scope singleton  prototype

4、bean注入的兩種方式  設值注入  屬性必須有getter和setter   構造注入  必須要有有參構造

5、spring的注解配置

面試題:

1、你怎么理解spring的di和ioc

di依賴注入描述對象之間的依賴關系  在spring工廠中設值注入或者構造注入維護關系

ioc  控制反轉  描述對象創建方式的改變   原來創建對象在程序中,用來spring之后在工廠中創建獨享

2、spring中@Autowired和@Resource的區別是什么

@Autowired按類型自動裝配

@Resource先按類型自動裝配  再按屬性名稱自動裝配

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM