SPRING
1:spring框架的功能:
Spring框架比较繁杂,功能较多的框架,主要创建、销毁、管理对象,项目bean对象管理粘合剂,相当与项目管家。主要通过IOC与AOP两大技术实现。
2:spring框架优点:
1)方便解耦,简化开发 Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给 Spring 管理。 2)方便集成各种优秀框架 Spring 不排斥其他各种优秀的开源框架,其内部提供了对各种优秀框架(如 Struts2、Hibernate、MyBatis等)的支持。 3)降低 Java EE API 的使用难度 Spring 对 Java EE 开发中非常难用的一些 API都提供了封装,使这些API 应用的难度大大降低。 4)AOP 编程的支持 Spring 提供面向切面编程,可以方便地实现对程序进行权限拦截和运行监控等功能。 5)声明式事务的支持 只需要通过配置就可以完成对事务的管理,而无须手动编程。
6)面向接口编程
3:IOC:控制反转:
原来项目代码中对象都是由我们自己new创建(我们负责对象的创建,项目不管),现在引入spring框架,由spring框架创建对象(对象不由我们创建,由spring框架创建) 所有bean(对象)交给spring容器管理,由spring创建、销毁对象,统一管理(不使用new创建)。默认所有对象单例模式。原来所有的对象都是通过代码开发者自己new,控制权在开发者自己手上,现在交给spring管理,对象的控制权交给代码自己,称之为控制反转。
a:IOC容器创建对象
1):方式1:构造器实例化
默认调用无参构造器
1:新建maven项目,在pom.xml文件定义:
<dependencies>
<!--代码测试包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--spring核心工具包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!--IOC工具包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!--依赖注入包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!--spring表达式包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
</dependencies>
2:自定义类:
package com.woniu.service;
public class StuServiceImp implements StuService {
public StuService(){
System.out.println("StuService构造器......");
}
public void addStu(){
System.out.println("addStu方法.......");
}
}
3:在src/main/resources包根目录创建spring核心配置文件:springConfig.xml,复制基本结构
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!--该bean交给spring管理:创建、销毁、管理对象,创建出来对象的名字叫做stuService-->
<bean id="stuService" class="com.woniu.service.StuService"></bean>
</beans>
注意:所有在该xml文件中定义的bean对象,都交给spring管理(创建、销毁等等.....)
4:创建ioc容器对象,并获得对象
public class Test {
public static void main(String[] args) {
//创建一个IOC容器对象(读取springConfig.xml文件,创建所有bean对象。)
ApplicationContext context =
new ClassPathXmlApplicationContext("/springConfig.xml");
//根据id获得对象
StuService stuService1 = (StuService)context.getBean("stuService");
//根据类名获得对象
StuService stuService2 = context.getBean(StuService.class);
System.out.println(stuService1);
System.out.println(stuService2);
stuService1.addStu();
}
}2):方式2:静态工厂模式
3):方式3:实例工厂模式
4):方式4:注解方式
b:bean的作用域:
c:IOC的父接口:
d:DI:依赖注入:
spring执行IOC的时候,每一个类当中通常会有类属性:spring不建议new对象,通过工厂模式把容器创建的对象赋值给类属性,简单理解:IOC容器在创建对象A时,需要给该对象A的类属性赋值的过程:称之为依赖注入
e:FactoryBean与BeanFactory:
1):FactoryBean:
可以自己实现该接口实现自己需求的注入功能。
2):BeanFactory
3):区别:
总结:
4:复习代理的作用
5:AOP:面向切面编程:
OOP:面向对象编程:纵向编程。
servlet
↓
service
↓
mapper
AOP:横向编程,不是用来替代OOP,而是对OOP的补充。
servlet
↓
service
↓
→aop代码
mapper
→aop代码
6:整合mybatis
6:事务处理:
7:自定义注解
8:idea添加mybatis插件
见word文档
9:spring常用注解
10:springmvc:
针对控制层,视图层(页面模板)封装,对MVC进行封装。
1)基本应用
2)映射处理器
3)适配处理器
4)视图解析器
5)目的与作用
6)注解映射处理器和注解适配处理器
7)控制层代码
8)接收参数
9)乱码处理
11:ssm整合
1)依赖
2)web.xml
3):spring-mvc.xml
4)mybatisConfig.xml
5)业务层
6)控制层
7)请求乱码
8)上传
12:异步请求
1:请求测试1
2:请求测试2:
3:请求测试3
4:请求测试4
5:请求测试5
6:请求测试6
7:请求测试7
8:RestFul
9:RestFul请求方式:
全称:Representational State Transfer(表述性状态转移)。
RESTful架构是对MVC架构改进后所形成的一种架构,通过使用事先定义好的接口与不同的服务联系起来。在RESTful架构中,浏览器使用GET,POST,DELETE和PUT四种请求方式分别对指定的URL资源进行增删改查操作。因此,RESTFUL是通过URI实现对资源的管理及访问,具有扩展性强、结构清晰的特点。
特点:请求路径不以.xxx结束,且可以根据请求方式来实现不同的功能
10:异步上传
13:拦截器:
原理是AOP,可以执行在servlet之前或者servlet之后且view之前或者view之后执行。
14:常用注解
最后更新于