Spring快速入門

1、導(dǎo)入坐標(biāo)

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

2、創(chuàng)建TestDao

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

3、創(chuàng)建applicationContext.xml進(jìn)行配置

<?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、測(cè)試運(yùn)行

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

運(yùn)行結(jié)果


WeChatb33963d005e2527e1369824ea07c617a.png

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

①singleton (默認(rèn)值,單例的)

scope默認(rèn)值singleton。scope為singleton的時(shí)候,在Spring的IoC容器中只存在一個(gè)實(shí)例,所有對(duì)該對(duì)象的引用將共享這個(gè)實(shí)例。該實(shí)例從容器啟動(dòng),并因?yàn)榈谝淮伪徽?qǐng)求而初始化后,將一直存活到容器退出,也就是說(shuō),它與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的時(shí)候,Bean的實(shí)例化個(gè)數(shù)是多個(gè),當(dāng)調(diào)用getBean()方法時(shí)實(shí)例化Bean ,當(dāng)使用對(duì)象時(shí),創(chuàng)建新的對(duì)象實(shí)例 ,只要對(duì)象在使用中,就一直活著 ,當(dāng)對(duì)象長(zhǎng)時(shí)間不用時(shí),被 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

這三個(gè)scope類型是Spring2.0之后新增加的,它們不像上面兩個(gè)那么通用,它們只適用于Web應(yīng)用程序,通常是與XmlWebApplicationContext共同使用(注意:只能使用scope屬性才能使用這三種,也就是必須使用XSD文檔聲明的XML配置文件格式)
request
Spring 創(chuàng)建一個(gè) Bean 的對(duì)象,將對(duì)象存入到 request 域中
session
Spring 創(chuàng)建一個(gè) Bean 的對(duì)象,將對(duì)象存入到 session 域中
global session
應(yīng)用在 Portlet 環(huán)境,如果沒(méi)有 Portlet 環(huán)境那么globalSession 相當(dāng)于 session

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一. Spring概述 1.1 什么是Spring Spring是一個(gè)開(kāi)源框架,Spring是于2003 年興起的...
    明天你好向前奔跑閱讀 481評(píng)論 0 1
  • 文章內(nèi)容輸出來(lái)源:拉勾教育Java就業(yè)急訓(xùn)營(yíng) Spring是什么 ??Spring是分層的 Java SE/EE應(yīng)...
    大杰or小智閱讀 530評(píng)論 0 0
  • 什么是Spring? 為什么要使用Spring? 快速入門案例 怎樣理解IoC和DI 1. 什么是Spring? ...
    RicherYY閱讀 426評(píng)論 0 0
  • 一、概述 Spring是J2EE應(yīng)用程序框架,是輕量級(jí)的IoC(控制反轉(zhuǎn))和AOP(面向切面)容器框架,主要針對(duì)j...
    凜_冬_將_至閱讀 448評(píng)論 0 3
  • Spring Spring是什么 Spring是一個(gè)開(kāi)源的輕量級(jí)框架,是一個(gè)管理Bean的容器(普通Java類容器...
    伍陸柒_閱讀 2,269評(píng)論 0 2

友情鏈接更多精彩內(nèi)容