Spring框架入門

一.傳統的開發模式

基于mvc模式進行項目開發;
基于mvc的項目框架結構:
Entity / dao/service/ action

思考:
1. 對象創建創建能否寫死?
2. 對象創建細節
    對象數量
        action  多個   【維護成員變量】
        service 一個   【不需要維護公共變量】
        dao     一個   【不需要維護公共變量】
    創建時間
        action    訪問時候創建
        service   啟動時候創建
        dao       啟動時候創建
3. 對象的依賴關系
    action 依賴 service
    service依賴 dao
總結:

spring就是解決上面的問題的!
簡單來說,就是處理對象的創建的、以及對象的依賴關系!

二.專業術語了解

組件/框架設計

1.侵入式設計
引入了框架,對現有的類的結構有影響;即需要實現或繼承某些特定類。
2.非侵入式設計
引入了框架,對現有的類結構沒有影響。
3.控制反轉:
Inversion on Control , 控制反轉 IOC
對象的創建交給外部容器完成,這個就做控制反轉.
4.依賴注入, dependency injection 處理對象的依賴關系

  • 區別:

控制反轉, 解決對象創建的問題 【對象創建交給別人】
依賴注入,在創建完對象后, 對象的關系的處理就是依賴注入 【通過set方法依賴注入】

5.AOP
面向切面編程。切面,簡單來說來可以理解為一個類,由很多重復代碼形成的類。
切面舉例:事務、日志、權限;

三.開發步驟

1.添加jar包

maven項目加載:pom.xml

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.1.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>
image.png

2.核心配置文件

applicationContext.xml

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

        <!--IOC容器,所有創建的文件都配置在這里-->
        <bean id="user" class="com.huan.User"></bean>
</beans>

3.寫User.java

package com.huan;

/**
 * Created by 馬歡歡 on 2017/6/24.
 */
public class User {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

4.測試創建對象

1.通過工廠類的到容器創建的對象

@Test
    public void test1(){
        //將對象交給SpringIOC容器創建
        Resource resource = new ClassPathResource("Spring/applicationContext.xml");
        //創建容器對象(Bean工廠)
        BeanFactory factory =new XmlBeanFactory(resource);
        User user = (User) factory.getBean("user");
        System.out.println(user.getId());
    }

2.直接的到容器對象

  @Test
    public void test2(){
        //得到IOC容器對象
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        User user = (User) applicationContext.getBean("user");
        user.setUsername("huanhuan");
        System.out.println(user.getUsername());
    }

5.運行結果

文集:Spring框架學習

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容