Spring快速入门

1、导入坐标


      org.springframework
      spring-context
      5.0.5.RELEASE

2、创建TestDao

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

3、创建applicationContext.xml进行配置




    

    

4、测试运行

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

运行结果


WeChatb33963d005e2527e1369824ea07c617a.png

①singleton (默认值,单例的)

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

  
  
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 的垃圾回收器回收了

  
  
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快速入门)