Spring
一、Spring初体验
1.1 Spring简介
认识Spring:
控制反转: 把创建对象的操作 交给了容器
Spring提供一站式解决方法,对开发的各层都有提供支持。
Spring 体系结构:
Spring 由 20 多个模块组成,它们可以分为数据访问/集成(Data Access/Integration)、 Web、面向切面编程(AOP, Aspects)、提供JVM的代理 (Instrumentation)、消息发送(Messaging)、 核心容器(Core Container)和测试(Test)。
Spring特性:
-
非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API。
class HelloServlet extends HttpServlet{ // 处理请求的类:侵入式设计; servlet侵入 } class HelloHandler { // 处理请求的类: 非侵入式设计 }
-
容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期。
-
组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
-
一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的JDBCTemplate)。
IOC 容器:
Inversion of control 控制反转容器 之前:我们用对象,自己new 现在:我们用对象,去ioc容器中获取,对象怎么创建的不用管,只要去用就行了。 IOC 作用: 帮助我们创建对象、管理对象的生命周期。 User user = new user() 创建对象 DI dependency injection 依赖注入 class UserService { private UserDao userDao public void setUserDao(UserDao userDao){ this.userDao = userDao; } public void save(){ userdao.saveUser(); } } UserSevice us = new UserService(); // IOC: 创建对象 us.setUserDao(userDao); // IOC: 管理对象的依赖关系,DI,依赖注入 us.save(); // 报错
IOC: 创建对象、处理对象的依赖关系。
1.2 入门案例
-
导入jar包
<dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.12.RELEASE</version> </dependency> </dependencies>
-
编写核心配置文件
-
配置文件路径:src/main/resources
-
示例代码
<?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 对象的名称,从容器中获取对象可以通过id class 对象的全路径 scope 对象的范围 singlton 默认;单例的对象;创建容器的时候自动创建 prototype 多例; 每次从容器中获取对象都创建全新的对象 lazy-init="true" 单例的对象默认在创建容器时候创建; lazy-init设置为true表示第一次使用时候才创建 --> <b
-