zoukankan      html  css  js  c++  java
  • Spring_提示模板配置/搭建spring框架/单例与多例/初始化方法和销毁方法

     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();
        }
    
    }
  • 相关阅读:
    第009题 智猜年龄——问经理三女儿年龄各多少
    第008题 求最大值——10个1加乘的最大数字
    第007题 天平称物——最少砝码称出最多质量
    第006题 天平找次——至少称几次找到次品
    第005题 青蛙过河——十只青蛙如何顺利过去
    第004题 过河问题——如何过河用时最短
    第003题 过河问题——三对老虎如何安全过河
    第002题 打水问题——9升和4L的桶如何打6升水
    基于博弈论分析在线教育网站和慕课的产生
    C++左右括号匹配问题(并给出括号的位置 并且允许非括号字符插入)修改版
  • 原文地址:https://www.cnblogs.com/lonske/p/9052758.html
Copyright © 2011-2022 走看看