Spring快速入门

2021-03-31  本文已影响0人  N最珍贵

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

上一篇下一篇

猜你喜欢

热点阅读