SSM框架学习

一、Spring

1、核心概念

当要使用对象的时候ioc容器就会为其提供对象,在ioc容器中会将service与之对应关系的dao绑定起来,一起依赖注入给业务层,这样对象所依赖的所有东西都一起完成了。

(1)Ioc入门

 (2)DI入门

 

 (3)bean的基础配置

当要创建对象时,使用getBean(“对应id值”)来让容器里面对应的bean来创建

 在bean中使用scope<>能够进行范围限制,bean默认为单例(一个类创建的多个对象,最终都是一样的,你调用这个对象,返回的地址都是一样的),使用scope<prototype>,那么你调用这个对象时,就会生成不同的地址。

(4)bean的实例化

在外部创建对象时,spring是通过无参构造方法来进行对象的创建的

 

 

(5)bean的生命周期

 

2、依赖注入方式

(1)setter注入

name表示的是形参的值

(2)构造器注入

3、依赖自动装配

IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配

4、加载properties文件

 标准的加载properties文件写法(这个只能读取当前工程的配置文件,jar包里面的不能读取):

 如果想读取jar包里面的配置文件则需要下面这样:

5、注解开发定义bean

(1)注解开发

接口:

接口实现类:

 容器配置文件:

 执行输出:

 不同层次不同的注解,增加区分度:

 (2)纯注解开发

     将注解开发配置文件修改为配置类,这样就不用单独的去使用配置文件,在获取这个配置类的时候通过  ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class); 来获取。

 (3)注解开发依赖注入

 (4)加载properties文件

 (5)注解开发管理第三方bean(数据库连接jdbc)

 不建议使用上面这种方法,jdbc的配置类应该单独写bean,如下(单独写一个JdbcConfig,然后将里面的方法用bean注解(表示该方法的返回值为一个bean),在核心配置类SpringConfig里面使用Import注解加入jdbc的配置类):

注入资源:

  

6、Spring整合Mybatis

整合具体过程:

将配置文件写成配置类时,建立数据库连接的过程被整合成sqlSessionFactory()方法,其中dataSource通过参数传值的方法进行注入

 扫描映射文件找到数据库操作方法的过程被整合成mapperScannerConfigurer()方法,两种方法都被注解了Bean,成为了spring容器的一部分,当外部需要用到某个对象时,容器就将创建好的对象传递给外部。

 通过配置类来实现数据库操作:

 核心配置类(代替了容器的配置文件,Configuration注解表示该类为配置类、ComponentScan(“”)注解表示了扫描该路径下的所有bean(就是各个类前面使用Component及其其他三个衍生注解的类就是bean)),通过注解加入jdbc、mybatis配置类:

7、AOP

(1)AOP简介

(2)步骤

 (3)AOP工作流程

(4)AOP切入点表达式

 (5)AOP通知类型

  (6)AOP通知获取数据

 获取原始方法的参数(并且还能根据数组对应的去修改参数):

 获取原始方法的返回值:

 案例(处理字符串空格,将接收到的参数获取下来,然后去修改参数的值,处理空格问题,最后再将处理好的参数重新传递给对象):

Pointcut定义了切入点,Around使用环绕将切入点与通知联系起来,ProceedingJoinPoint声明对象来获取原始方法的数据,pjp.getArgs()获取原始方法的参数,然后将得到的参数去进行逻辑处理,然后将修改的参数重新传递给对象,然后返回。

(7)AOP总结

8、Spring事务

(1)事务简介

 (2)案例

 注解bean的作用:将方法的返回值对象设置为bean,当外部需要时,容器就将对象传递出去

 标红注解:向spring容器说明我们是用注解写的配置类

(3)事务角色

 (4)事务属性

相关配置:

 事务传播:

 案例:

上面的案例日志事务、转账的两个事务都会归属于同同一个事务,这样要么都成功要么都失败。但当我们想要实现转账日志不管转账成功与否都要显示出来,那么我们就要把日志事务单独重新设置为一个事务,可以采取下面的propagation设置形式:

二、SpringMVC

1、SpringMVC简介

(1)概述

 (2)案例

 在spring容器中,注解Controller将springmvc控制器类定义为bean(能够让容器创建对象);注解RequestMapping设置当前控制器方法请求访问路径;注解ResponseBody设置当前控制器方法响应内容为当前返回值,无需解析

 注解Configuration表示此类为配置类,注解ComponentScan表示扫描特定包下的bean

SerletContainersInitConfig类相当于web.xml (初始化一个web容器,服务器启动后就会执行这个类初始化生成一个web容器)。createServletApplicationContext方法主要是让tomcat容器加载spring配置;getServletMappings方法是让tomcat容器接收到的所有请求交给springmvc去处理。

总结:总的流程大体是先导入相关坐标→再书写控制层的类(与servlet功能相同),其中这个类记得要定义为bean以便能够让外部容器扫描到,里面注解了请求和响应→为了能够去加载bean,还需要去设置一个springmvc的配置类,能够去扫描相关包下的bean→最后为了能够让tomcat知道这是一个springmvc的注解配置还需要设置一个继承AbstractDispatcherServletInitializer的web容器启动类去处理相关请求。

执行流程分析:

 (3)Controller与bean的加载控制

因为功能的不同,我们需要避免Spring核心配置类错误的加载到SpringMVC的bean。

 (4)PostMan插件

2、SpringMVC请求与响应

当RequestMapping注解在类前面时就代表整个模块的访问前缀,在方法前面就是具体访问名称 

(1)请求参数

 pojo参数(实体类),外面的属性将会塞给这个实体类参数。

 总结:默认的参数都能够对应上,不能对应上的(报错),前面加一个RequestParam的注解

请求参数:传递json数据

日期类型参数传递:

当日期格式跟默认格式不一致时,就使用DateTimeFormat注解自己设定日期时间数据格式 

(2)响应

3、REST风格

 案例步骤:

 requestBody注解表示接收json数据(也就是请求体数据)

页面交互案例:

 由于所有的请求都被springmvc处理,所以我们要对静态资源放行:

4、SSM整合

(1)SSM整合流程

(2)表现层数据封装

(3)异常处理器

(4)项目异常处理方案

 步骤:

5、拦截器

(1)拦截器入门案例

projectInterceptor类写在表现层下面,如果里面的preHandle方法返回的值为false,那么就会被拦截(在这个里面可以进行判断,不满足条件的就拦截下来);

配置类里面的addInterceptors主要是实现当访问哪些路径的时候执行拦截器功能,例如第三步

 (2)拦截器参数详解

  运用了反射的机制,相当于拿到了handler,就可以对原始的那个方法进行操作。

 (3)多拦截器的执行顺序

正如上图所示:当只有1返回false时,执行前置1的信息后直接退出,后面所有的都不会执行;当只有2返回false时,执行前置1、2的信息后直接调转到执行后置1,其余的都不执行;当只用3返回false时,执行前置1、2、3的信息后直接跳转到执行后置2、1,然后退出。

6、Maven进阶

(1)分模块开发与设计(将子模块首先下载到本地仓库(install),然后再在其他模块中导入子模块的坐标

(2)依赖管理

(3)聚合与继承

 

 

(4)属性管理

 

(5)多环境配置与应用

(6)私服

三、SpringBoot

1、SpringBoot简介

(1)入门案例

 

 

执行启动的时候要在jar包所在路径下打开cmd执命令

(2)SpringBoot概述

 在<artifactId/>标签里面有starter就表示为起步依赖,里面依赖了许多其他资源(上面两个一个为版本管理“父资源”坐标,一个是依赖管理)

 

 

2、基础配置

(1)配置文件格式

(2)yaml

 Enviroment对象是将ymal里面的所有数据全部封装到一起,然后根据属性值去调用

 自定义一个实体类去封装对应的属性,通过ConfigurationProperties注解去定义封装哪个属性内容,然后通过自动装配去实现调用,就相当于一个普通的实体类调用

(3)多环境启动

 当打包成jar包传递给前端人员的时候,如果他想改变启用环境和端口号,则可以在jar包对应文件下打开命令行,然后对应输入命令:

处理Maven与SpringBoot多环境兼容(boot应该听从Maven的配置):

(4)配置文件分类

3、SpringBoot整合第三方技术

(1)整合junit

(2)整合SSM

①SpringBoot整合Spring(不存在)

②SpringBoot整合SpringMVC(不存在)

③SpringBoot整合MyBatis

 

 四、MybatisPlus

1、mybatisplus入门案例

 2、mybatisplus简介(官网:简介 | MyBatis-Plus) 

 3、标准数据层开发

(1)标准数据层CRUD功能

(2)分页功能

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小修士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值