本帖最后由 逆风TO 于 2020-1-6 10:19 编辑
一、Spring概述
1.1 框架概述
框架是一个封装了很多功能和模块的程序半成品。可以理解是一个由很多工具类组合成的一个工具包。
1.2 Spring是什么
Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架。是Java开发的灵魂框架。
Spring有两大内核:
IOC:(Inverse Of Control:控制反转)
AOP:(Aspect Oriented Programming:面向切面编程)
1.3 Spring功能
IOC:控制反转。就是我们不在创建对象,把对象的创建权,交给spring,由Spring负责给我们创建对象。
DI: 依赖注入。就是给对象的成员变量赋值。
AOP:面向切面编程,底层就是动态代理。
事务: Spring提供了声明式事务,也就是说,我们可以通过配置的方式来添加事务。
二、Spring快速入门
2.1 Spring程序开发步骤
1 导入 Spring 开发的基本包坐标
2 编写 Dao 接口和实现类
3 创建 Spring 核心配置文件
4 在 Spring 配置文件中配置 UserDaoImpl
5 使用 Spring 的 API 获得 Bean 实例
[Java] 纯文本查看 复制代码 <!-- pom.xml中根据自己的版本配置 -->
<properties>
<spring.version>5.0.5.RELEASE</spring.version>
</properties>
<!--导入spring的context坐标,context依赖core、beans、expression-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
</dependencies>
2.3 编写Dao接口和实现类
[Java] 纯文本查看 复制代码 public interface UserDao {
public void find();
}
public class UserDaoImpl implements UserDao {
@Override
public void find() {
System.out.println("UserDao find method running....");
}
}
、2.4 创建Spring核心配置文件 - 在类路径下(resources)创建applicationContext.xml配置文件
[Java] 纯文本查看 复制代码 <?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="
[url=http://www.springframework.org/schema/beans]http://www.springframework.org/schema/beans[/url] [url=http://www.springframework.org/schema/beans/spring-beans.xsd]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]">
2.5 在Spring配置文件中配置UserDaoImpl[Java] 纯文本查看 复制代码 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
[url=http://www.springframework.org/schema/beans]http://www.springframework.org/schema/beans[/url] [url=http://www.springframework.org/schema/beans/spring-beans.xsd]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]">
<!-- 配置UserDaoImpl -->
<bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"></bean>
</beans>
2.6 使用Spring的API获得Bean实例
[AppleScript] 纯文本查看 复制代码 @Test
public void test1(){
//加载spring配置文件。获取spring核心容器
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取spring容器中的userDao对象
UserDao userDao = (UserDao) ac.getBean("userDao");
//调用方法
userDao.find();
}
三、Spring配置文件3.1 Bean标签基本配置 [AppleScript] 纯文本查看 复制代码 <bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"></bean>
id:Bean实例在Spring容器中的唯一标识
class:Bean的全限定名称
3.2 Bean标签范围配置 [Java] 纯文本查看 复制代码 <bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl" scope="singleton" ></bean>
scope:指对象的作用范围,取值如下:
3.3 Bean生命周期配置
init-method:指定类中的初始化方法名称,当对象被创建时,调用该方法。 destroy-method:指定类中销毁方法名称,当对象被销毁时,调用该方法。 3.4 Bean实例化三种方式 1 使用无参构造方法实例化 默认调用无参构造方法创建对象,如果bean中没有默认无参构造函数,将会创建失败 [Java] 纯文本查看 复制代码 <bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"/> - 2 工厂静态方法实例化
[AppleScript] 纯文本查看 复制代码 //工厂类
public class StaticFactoryBean {
//静态方法,通过该方法获取对象
public static UserDao createUserDao(){
return new UserDaoImpl();
}
}
[Java] 纯文本查看 复制代码 <bean id="userDao" class="www.baidu.factory.StaticFactoryBean" factory-method="createUserDao" />
[Java] 纯文本查看 复制代码 //工厂类
public class DynamicFactoryBean {
//非静态方法,需要先创建工厂类的对象,再通过对象调用该方法,获取对象
public UserDao createUserDao(){
return new UserDaoImpl();
}
}
[Java] 纯文本查看 复制代码 <!-- 创建工厂类的对象 -->
<bean id="factoryBean" class="www.baidu.factory.DynamicFactoryBean"/>
<!-- 通过工厂类的对象,调用createUserDao方法,获取UserDao对象 -->
<bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/>
|