0
点赞
收藏
分享

微信扫一扫

Spring框架的知识点复习

草原小黄河 2022-02-03 阅读 80
spring

Spring框架的知识点总结

1.1. spring框架是一个开源的J2EE应用框架,是管理bean的生命周期的轻量级容器.

1.2. IOC,即控制反转,将对象的创建权利交给spring框架完成,由容器管理对象的生命周期.解决了框架和框架之间耦合性问题.

  • 1.2.1 容器的数据结构: K-V Map<K,V> key=bean中的ID, value=反射机制实例化的对象.
  • 注解
    • @Configuration 标识当前类是配置类
    • @ComponentScan 包扫描注解 扫描注解
    • @Bean 标识该方法的返回值交给Spring容器管理
    • @Scope 控制多例和单例
      • Spring容器默认条件下,对象都是单例对象
    • @Lazy 懒加载
      • 懒加载的控制,只对单例对象有效
  • 1.2.2 spring对象的生命周期
    • 生命周期说明
      • 对象创建
      • 初始化数据
      • 调用方法,完成功能
      • 对象销毁
    • 注解
      • @PostConstruct 标识初始化方法
      • @PreDestroy 标识销毁方法.
  • 1.2.3 Spring管理对象
    @Component 将当前类未来的对象交给容器管理

1.3 Spring-DI 依赖注入

  • 注入方式:
    • 通过set方法为属性赋值. property
    • 通过构造方法为属性赋值. constructor-arg
    • @Autowired 自动注入
  • 注解: @Autowired
    * 默认情况下采用类型注入. 一般条件下一个接口一个实现类
    * 也可以按照名称进行注入.

1.4 Spring层级代码结构

  • Controller层 @Controller
  • Service层 @Service
  • Dao/Mapper层 @Repository
  • POJO 根据数据表定义的实体对象

1.5 AOP,即面向切面编程,在不修改原有代码的条件下对方法进行扩展.使得业务逻辑各部分之间的耦合度降低.

  • 连接点 切入点 Advice 切面 编织
  • 1.5.1 动态代理:使用代理对象和使用目标对象看起来一模一样
  • 1.5.2 JDK动态代理
    • JDK动态代理是JDK源码提供的,无需导入额外的jar包.
    • JDK代理对象要求实现和被代理者相同的接口,必须有接口
    • JDK代理创建速度快,运行时稍慢
  • 1.5.3 CGLIB动态代理
    • cglib动态代理需要导入额外的包,才能使用.
    • cglib 要求被代理者有无接口都可以, 但是cglib代理对象是目标对象的子类. (继承)
    • cglib创建代理对象时慢,但是运行期速度快.
  • 1.5.4 注解:
    • @Aspect 标识当前类是一个切面
    • @Pointcut 标识切入点表达式
    • @Before 通知注解
    • @EnableAspectJAutoProxy 让AOP有效
  • 1.5.5 切入点表达式 --配置AOP为谁创建代理对象
    • @Pointcut(" bean(“对象的ID”) ")
    • @Pointcut(“within(包名.类名)”)
    • @Pointcut(“execution(返回值类型 包名.类名.方法名(参数列表))”)
  • 1.5.6 通知方法
    • 一般记录程序的运行状态.
      • @Before AOP-前置通知
      • @AfterReturning AOP-后置通知
      • @AfterThrowing AOP-异常通知
      • @After AOP-最终通知
    • 控制目标方法是否运行
      • @Around AOP-环绕通知
举报

相关推荐

0 条评论