文章目录
1 spring基础应用
1.1 引入依赖
<properties>
<spring.version>5.3.13</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
spring-context依赖了spring-aop、spring-beans、spring-core、spring-expression这些包,如上图。
1.2 创建服务类
1.3 创建配置文件
配置文件applicationContext.xml中添加bean,由spring容器来创建bean对象。默认情况下spring容器调用的是类中的无参构造函数,创建的是单例对象(scope="prototype"是多例)。
<?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.test.dao.impl.TestDaoImpl" scope="singleton"/>
</beans>
补充说明:
bean标签中的scope属性:
单例模式:对象随着spring容器的存在而存在;
多例模式:对象使用时创建,对象长时间不使用会被JVM回收。
bean实例化的三种方式(以无参构造方法创建实例说明):
默认的方式
<bean id="testDao" class="com.test.dao.impl.TestDaoImpl" />
工厂静态方法:
public class StaticFactory {
//注意是静态方法
public static TestDao getTestDao(){
return new TestDaoImpl();
}
}
<bean id="testDao" class="com.test.factory.StaticFactory" factory-method="getTestDao"/>
工厂非静态方法:
public class NotStaticFactory {
public TestDao getTestDao(){
return <