Spring

发布于:2024-08-26 ⋅ 阅读:(167) ⋅ 点赞:(0)

1.框架与分层:
  • MyBatis - Dao层 - 和数据库交互

  • SpringMVC - Web层 - 和用户交互

  • Spring - 不属于任何一层 - 整合其他框架

    • 概念 - IOC DI AOP

      • IOC - 控制反转:Spring的IOC容器负责对象的创建和管理,需要哪个对象就从IOC容器中直接获取

      • DI - 依赖注入:赋值

      • AOP - 面向切面编程:不修改源码的情况下,对源码进行增强

    • 实现 - 注解

2.Spring优势
  • 方便解耦,简化开发

  • AOP 编程的支持

  • 声明式事务处理

3.实例化对象常见注解

- 让Spring的IOC容器创建对象

  • @Controller - 在Controller类上

  • @Service - 在Service类上

  • @Repsitory - 在Dao类上

  • @Component - 不属于任何一层的类上

  • ps:四个注解作用完全相同,建议使用的位置不同

4.依赖注入 - 常见注解
  • @Autowired

  • 有参构造方法注入:有参构造方法 + @Autowired

  • set方法注入:setXxx() + @Autowired

  • @Qualifier:结合@Autowired实现根据名称注入,类必须有名称(value)

  • Resource:根据名称注入

5.实例化第三方类

配置类 + @Bean

  • @Configuration:定义在类上,表示这是一个配置类

  • @Bean:将方法的返回值让IOC管理,使用在配置类的方法上

6.其他
  • @ComponentScan: 配置包扫描,指定扫描哪个包

  • @PropertySource:加载properties里的配置

  • @Import(xxx.class):导入其他配置类

  • Transactional:使事务失效

7.AOP
1)动态代理

不修改源码的情况下,对源码进行增强

2)相关概念

见教程

3)通知配置
4)切点表达式
  • 语法

     execution([修饰符] 返回值类型 包名.类名.方法名(参数))
  • 注意:

  1. 访问修饰符可以省略

  2. 返回值类型、包名、类名、方法名可以使用星号*代表任意

  3. 包名与类名之间一个点 . 代表当前包下的类,两个点 .. 表示当前包及其子包下的类

  4. 参数列表可以使用两个点 .. 表示任意个数,任意类型的参数列表

8.事务处理 - 声明式事务处理
  • AOP 

如何使用拦截器

  • 定义拦截器,实现HandlerInterceptor接口

  • 配置拦截器,在自定义的配置类中配置

    • 配置类要实现WebMvcConfigurer接口

    • 重写addInterceptors方法,添加拦截器并配置拦截器拦截和排除的路径

SpringMVC

1.MVC拦截器

如何使用拦截器

  • 定义拦截器,实现HandlerInterceptor接口

  • 配置拦截器,在自定义的配置类中配置

    • 配置类要实现WebMvcConfigurer接口

    • 重写addInterceptors方法,添加拦截器并配置拦截器拦截和排除的路径

EX:登陆验证

 ????????太多啦
2.Swagger
  • 目的:统一文档

  • 配置文件:见教程

  • 配置类:@Configuration @RequestMapping

  • 常见注解


网站公告

今日签到

点亮在社区的每一天
去签到