1. 程式人生 > >spring學習(二)spring容器搭建與應用

spring學習(二)spring容器搭建與應用

本文只是對spring容器進行操作

最簡單的一個案例:

一、導包

使用IDEA的maven工程

1、在pom.xml中匯入依賴

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
> <modelVersion>4.0.0</modelVersion> <groupId>day_demo1</groupId> <artifactId>day_demo1</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.springframework</groupId
> <artifactId>spring-core</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId
> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> </project>
對應下載的jar包是

 下面jar包自動依賴匯入

 

2、配置檔案的書寫(用的是IDEA,放在resources資料夾下面,檔名applicationContext.xml)
注意:要匯入對應的約束
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns
="http://www.springframework.org/schema/beans"
xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<!-- 將User物件交給spring容器管理 -->
<!-- Bean元素:使用該元素描述需要spring容器管理的物件
      class屬性:被管理物件的完整類名.
      name屬性:給被管理的物件起個名字.獲得物件時根據該名稱獲得物件.  
            可以重複.可以使用特殊字元.
      id屬性: 與name屬性一模一樣. 
            名稱不可重複.不能使用特殊字元.
      結論: 儘量使用name屬性.

注意的屬性:scope屬性:singleton——單例(預設為單例)

            prototype——多例
      生命週期屬性:
            init-method:Bean初始化的時候執行的方法
            destroy-method:Bean銷燬的時候執行的方法,銷燬方法想要執行,需要是單例建立的 Bean 而且在工廠關閉的時候,Bean 才會被銷燬
            注意:屬性值必須要與Bean中的方法名要一致。才能夠執行初始化和銷燬的方法。
-->
    <bean name="user" class="cn.itcast.bean.User" ></bean> 

    <!-- 匯入其他spring配置檔案 -->

   <import resource="cn/itcast/b_create/applicationContext.xml"/>

</beans>


三、建立實體類(User)
public class User {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

四、寫測試類
import dyh.so.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringTest {

    @Test
    public void fun(){
        //1、建立容器物件
        ApplicationContext ct = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2、向容器要User物件
        User user = (User) ct.getBean("user");
        user.setAge(12);
        user.setName("lily");
        //3、列印在容器中獲得的物件
        System.out.println(user);
    }
}

  列印結果: