美文网首页
Spring快速入门

Spring快速入门

作者: N最珍贵 | 来源:发表于2021-03-31 16:02 被阅读0次

    1、导入坐标

    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>5.0.5.RELEASE</version>
    </dependency>
    

    2、创建TestDao

    public interface TestDao {
        public void save();
    }
    
    public class TestDaoImpl implements TestDao {
        @Override
        public void test() {
            System.out.println("test 方法被调用了。。。");
        }
    }
    

    3、创建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="testDao" class="com.demo.dao.impl.TestDaoImpl">
    
        </bean>
    </beans>
    

    4、测试运行

     public static void main(String[] args) {
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            TestDao userDao = (TestDao) context.getBean("testDao");
            userDao. test();
        }
    

    运行结果


    WeChatb33963d005e2527e1369824ea07c617a.png

    \color{#FF0000}{Bean的scope(作用域)}

    ①singleton (默认值,单例的)

    scope默认值singleton。scope为singleton的时候,在Spring的IoC容器中只存在一个实例,所有对该对象的引用将共享这个实例。该实例从容器启动,并因为第一次被请求而初始化后,将一直存活到容器退出,也就是说,它与IoC容器“几乎”拥有相同的寿命

      <bean id="testDao" class="com.demo.dao.impl.TestDaoImpl" scope="singleton" >
      </bean>
    
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    TestDao testDao = (TestDao) context.getBean("testDao");
    TestDao testDao2 = (TestDao) context.getBean("testDao");
    testDao.save();
    testDao2.save();
    System.out.println(testDao);
    System.out.println(testDao2);
    
    WeChat93ba8fcbc4f74cb87a4db1545f91f2b7.png

    ②prototype (多例的)

    scope为singleton的时候,Bean的实例化个数是多个,当调用getBean()方法时实例化Bean ,当使用对象时,创建新的对象实例 ,只要对象在使用中,就一直活着 ,当对象长时间不用时,被 Java 的垃圾回收器回收了

      <bean id="testDao" class="com.demo.dao.impl.TestDaoImpl" scope="prototype" >
      </bean>
    
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    TestDao testDao = (TestDao) context.getBean("testDao");
    TestDao testDao2 = (TestDao) context.getBean("testDao");
    testDao.save();
    testDao2.save();
    System.out.println(testDao);
    System.out.println(testDao2);
    
    WeChat24a1752395264da2122ddd63833d3a20.png

    ③request、session、global session

    这三个scope类型是Spring2.0之后新增加的,它们不像上面两个那么通用,它们只适用于Web应用程序,通常是与XmlWebApplicationContext共同使用(注意:只能使用scope属性才能使用这三种,也就是必须使用XSD文档声明的XML配置文件格式)
    request
    Spring 创建一个 Bean 的对象,将对象存入到 request 域中
    session
    Spring 创建一个 Bean 的对象,将对象存入到 session 域中
    global session
    应用在 Portlet 环境,如果没有 Portlet 环境那么globalSession 相当于 session

    相关文章

      网友评论

          本文标题:Spring快速入门

          本文链接:https://www.haomeiwen.com/subject/wwxahltx.html