ssm入门学习

Spring入门学习

优点

  1. Spring是一个开源的免费框架
  2. Spring是一个轻量级的、非入侵式的框架
  3. 控制反转(IOC),面向对象编程(AOP)
  4. 支持事物处理,对框架整合的支持

总结:Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架

Spring boot

  1. 一个快速开发的脚手架
  2. 基于Springboot可以快速开发的单个微服务
  3. 约定大于配置

SpringCloud

是基于SpringBoot实现的

学习上面2个的基础是:学习Spring 和 SpringMVC

IOC理论推导

通过注入的方法,降低耦合性,当业务改变时,更改代码的成本更低
控制反转是一种描述(XML或注解)并通过第三方去生产或获取对象的方式。在Spring中实现控制反转的是IOC容器,其实现方法是依赖注入(Dependency Injection,DI)

使用IOC创建Spring

  1. 使用无参构造函数
  2. 下标构造
  3. 类型构造
  4. 参数名构造 (建议)
    总结:在配置文件加载的时候,容器中的对象就已经被实例化了

Spring配置

  1. alias:别名
  2. id:bean的唯一标识符,相当与对象名
  3. class:bean对象相当的路径:包名+类型
  4. name:别名,可以取多个
  5. import:一般用于团队使用,可以将多个配置文件合并为一个

依赖注入

构造器注入

set方式注入

依赖注入:set注入
依赖:bean对象的创建依赖于容器
注入:bean对象中所以属性,由容器来注入

注意点:p命名和c命名空间不能直接使用,需要导入xml约束

bean的作用域

  1. 单例模式(默认)
  2. 原型模式:每次get时会创建一个新对象
  3. 其余request、session、application、这些只能在web开发中使用到

bean的自动装配

  1. 自动装配是spring满足bean依赖的一种方式
  2. spring会在上下文中自动寻找,并给bean装配属性

在spring中有三种装配的方式

  1. 在xml中显示的配置
  2. 在java中显示配置
  3. 隐式的自动装配bean【重要】
    autowrite=""
    byName :会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid
    byType:同上,匹配和自己对象属性相同的bean

小结:

byname的时候,需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性的set方法指一致。
bytype的时候,需要保证所有bean的class唯一,并且这个bean需要和自动注入的属性的类型指一致

注解实现自动装配

要使用注解须知:

  1. 导入约束 context
  2. 配置注解的支持 context:annotation-config/
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <context:annotation-config/>

</beans>

@Autowired :可以直接在属性上使用即可,也可以在set方式上使用!
使用Autowired 我们可以不用编写set方法,前提是在ioc中存在,并且符合名字byname
科普:@Nullable 字段标记了这个注解说明改字段可以为空(null)
使用@Autowire的字段装配环境比较复杂,无法使用单个@Autowired完成时可以使用@Qualifier(value=“xxx”)来配合使用

@Resource:默认使用byname的方式实现,如果找不到名字,则通过byType实现,都找不到则报错

使用注解开发

在spring4之后,使用注解开发要导入aop的包
使用注解要加context约束

  1. bean
  2. 属性注入
    @Component 等价 @value 内容注入
  3. 衍生的注解
    @Component 有几个衍生注解,在web开发中,按照mvc三层架构分层
    dao【@Repository】
    service【@Service】
    controller【@Controller】
  4. 自动装配
  5. 作用域
    @Scope
  6. 小结
    xml更万能,适用任何场景,方便维护
    注解,不是自己类使用不了,维护叫复杂
    最佳实践:
    xml管理bean
    注解复杂属性注入
    ***使用注解时,要开启注解支持和扫描包

使用java的方式配置Spring

javaconfig是Spring的应该子项目,在spring4之后,成为一个核心功能!代替配置文件

代理模式

*** 注:是SpringAOP的底层

  1. 静态代理
  2. 动态代理

整合Mybatis

原因:方便连接数据库
步骤:

  1. 导入相关jar包
    junit
    mybatis
    mysql
    spring
    aop
    mybais-spring
  2. 编写配置文件
  3. 测试

mybatis

  1. 编写实体类
  2. 编写核心配置文件
  3. 编写接口
  4. 编写Mapper.xml
  5. 测试

Mybatis-spring

  1. 编写数据源配置
  2. sqlSessionFactory
  3. sqlSessionTemplate
  4. 需要给接口加实现类
  5. 将自己写的实现类,注入到Spring中
  6. 测试

声明事物

事物ACID原则

  1. 原子性
  2. 一致性
  3. 隔离性
  4. 持久性

spring中的事物管理

声明事物:AOP
编程式事物:需要在代码中,进行事物的管理

上一篇:SSM框架整合-03-mybatis层配置


下一篇:基于SSM+SpringBoot+MySQL+Vue前后端分离的高校招聘系统