Spring好处:低耦合,各个切面关联少

 

复制这个链接:

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

Eclipse - Windows - 属性 - XML Catalog - add - File system 把spring beans 2.5.xsd路径导入 - 粘贴链接到key,key type改成第二个

 

IOC:控制反转

将对象的创建、销毁、初始化等一系列的生命周期的过程交给spring容器,不需要new对象了。

 

搭建spring框架的过程:

一、 导入spring的jar包

二、书写主配置文件(applicationContext.xml)

三、启动框架测试

 

导入jar包:新建java项目 - 项目下新建lib文件夹 - 项目下新建名为resource的source folder - 将commons-logging.jar和spring.jar复制到lib中,然后两个jar选中,右键add to build path - resource 下新建applicationContext.xml - 去对应版本的spring开发手册按这个路径去找,复制前面几行代码。粘贴到applicationContext.xml中:

 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-2.5.xsd">

  <!-- 
      bean:将一个类的对象创建过程交给spring容器
          class:制定类的具体路径
          id:唯一标识符
  -->
  <bean id="yelloMouseWolf" class="cn.java.ioc1.YelloMouseWolf" ></bean>
    
</beans>

启动框架/获取对象:

package cn.java.ioc1;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class window {

    public static void main(String[] args) {
        //1.启动框架,context代表spring容器
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        
        //2.获取spring容器中创建的对象,通过xml中的id值获取
        YelloMouseWolf yellow1 = (YelloMouseWolf) context.getBean("yelloMouseWolf");
        yellow1.behavior();
    }

}

 

单例与多例的配置:

  <!-- 
      scope:用来控制spring容器产生对象的方式,可以为单例也可以为多例。
          单例:重复new的对象相同
          多例:重复new的对象不同
      常用的值:singleton(单例)、prototype(多例)。默认为单例
  -->
  <bean id="yelloMouseWolf" class="cn.java.ioc1.YelloMouseWolf" scope="prototype"></bean>
    

 

初始化方法:

  <!-- 
      init-method:初始化方法。值为需要执行的方法名。在执行cn.java.ioc1.YelloMouseWolf之前会先执行初始方法
      顺序是先执行类中构造方法,然后初始化方法,然后执行需要执行的方法
  -->
  <bean id="yelloMouseWolf" class="cn.java.ioc1.YelloMouseWolf" init-method="init"></bean>
    
package cn.java.ioc1;

public class YelloMouseWolf {
    
    public YelloMouseWolf() {
        System.out.println("构造");
    }

    public void init() {
        System.out.println("初始化方法");
    }
    
    public void behavior() {
        System.out.println("需要执行的方法");
    }
}

 

 

销毁方法:只有当对象被销毁之后,才执行destroy方法,只有关闭的时候才会销毁

  <!-- destroy-method:销毁方法,在调用的方法之后执行(当对象被销毁的时候执行) -->
  <bean id="yelloMouseWolf" class="cn.java.ioc1.YelloMouseWolf" init-method="init" destroy-method="destroy"></bean>
    
    public void destroy() { //销毁方法
        System.out.println("销毁方法");
    }
package cn.java.ioc1;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class window {

    public static void main(String[] args) {
        //1.启动框架,context代表spring容器
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        
        //2.获取spring容器中创建的对象,通过xml中的id值获取
        YelloMouseWolf yellow1 = (YelloMouseWolf) context.getBean("yelloMouseWolf");
        yellow1.behavior();
        
        //3.关闭context容器,并销毁容器中的所有对象
        ((ClassPathXmlApplicationContext)context).close();
    }

}

 

posted on 2018-05-17 19:24  lonske  阅读(316)  评论(0编辑  收藏  举报