Spring學習(一)初識spring

本文記錄尚硅谷spring視頻的學習過程
1.spring是什麼?
- Spring 是一個開源框架.
- Spring 爲簡化企業級應用開發而生. 使用 Spring 可以使簡單的 JavaBean 實現以前只有 EJB 才能實現的功能.
- Spring 是一個 IOC(DI) 和 AOP 容器框架.
2.spring的具體描述:
- 輕量級:Spring 是非侵入性的 - 基於 Spring 開發的應用中的對象可以不依賴於 Spring 的 API
- 依賴注入(DI — dependency injection、IOC)
- 面向切面編程(AOP — aspect oriented programming)
- 容器: Spring 是一個容器, 因爲它包含並且管理應用對象的生命週期
- 框架: Spring 實現了使用簡單的組件配置組合成一個複雜的應用. 在 Spring 中可以使用 XML 和 Java 註解組合這些對象
- 站式:在 IOC 和 AOP 的基礎上可以整合各種企業應用的開源框架和優秀的第三方類庫 (實際上 Spring 自身也提供了展現層的 SpringMVC 和 持久層的 Spring JDBC)
3.spring模塊
這裏寫圖片描述

4.初識spring項目,從HelloWorld開始
創建一個java項目,導入spring需要的jar包,從HelloWorld開始
項目截圖
這裏寫圖片描述
從項目結構可以看出spring所需要的5個jar包,下載地址https://pan.baidu.com/s/1cCM9xO
基本的實體類HelloWorld

public class HelloWorld {

    private String name;

    public String getName() {
        return name;
    }
    public void setName2(String name) {
        this.name = name;
    }

    public void hello(){
        System.out.println("hello:"+name);
    }
}

有一個屬性提供了基本的get、set方法,提供一個hello方法用來打印屬性消息
打印HelloWorld
javase的寫法

public class Test {
    public static void main(String[] args) {
        //1.創建HelloWorld對象
        HelloWorld helloWorld = new HelloWorld();
        //2.通過set方法給HelloWorld的屬性複製
        helloWorld.setName("tom");
        //3.調用HelloWorld類提供的方法
        helloWorld.hello();
    }
}

控制檯打印的信息:
這裏寫圖片描述
這是使用javase的方法打印出來的消息
現在使用spring來實現這個過程
創建一個spring的配置文件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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="helloworld" class="com.iflytek.test.bean.HelloWorld">
        <property name="name2" value="tom"></property>
    </bean>
</beans>

現在通過spring來實現上面的過程

public class Test {
    public static void main(String[] args) {
        //1.創建spring的IOC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2.從容器中獲取Bean  
        HelloWorld hello = (HelloWorld) ctx.getBean("helloworld");
        //3.調用方法
        hello.hello();
    }
}

控制檯打印的信息:
這裏寫圖片描述

快捷鍵

從控制檯中可以看出加載spring配置文件的日誌,顯示的效果和用javase的實現的一樣。
5.現在修改一下HelloWorld類,看spring做了哪些工作

public class HelloWorld {

    private String name;
    //在無參的構造函數中打印一條消息
    public HelloWorld() {
        super();
        System.out.println("Constructed is used...");
    }


    public String getName() {
        return name;
    }
    //在set方法中打印信息
    public void setName(String name) {
        System.out.println("after name:"+name);
        this.name = name;
        System.out.println("before name:"+name);
    }

    public void hello(){
        System.out.println("hello:"+name);
    }
}

這裏寫圖片描述
從控制檯中可以看出,spring調用了默認的構造函數,並且對於屬性name我們並未給他賦值,但是打印出來的name是有賦值的。回頭去看配置文件

<bean id="helloworld" class="com.iflytek.test.bean.HelloWorld">
        <property name="name" value="tom"></property>
    </bean>

在這裏有一個value=“tom”,在這裏可以猜測應該是在這裏給屬性賦值了。
到這裏爲止,就是簡單的去使用了spring框架做了一個簡單的操作,算是spring的一個初識,後續開始去講解spring識如何初始化對象如何去給對象屬性賦值的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章