【图文解析】Spring了解一下啊,图文解释,一看就懂小老弟!

版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_42246689/article/details/83313712

1.Spring简介

  • 什么是Spring:
    • spring产生于2003年,轻量级javase/ee一站式开源框架。
  • spring在三层架构的地位:
    • 表示层:SpringMVC/struts2
    • 业务逻辑层:Spring framework
    • 数据持久层:Mybatis/Hibernate/JdbcTemplate
  • spring的优点:
    • 方便解耦,简化开发(高内聚,低耦合)
    • spring是工厂,负责创建对象以及对象关系的维护。
    • 支持aop编程(面向切面编程)
    • spring支持对javaee api的简化
    • spring支持对junit的整合
  • spring的体系结构

  • spring的核心
    • ioc:控制反转
    • aop:面向切

2.对象创建的方式

​​​​​​​​​​​​​​

​​​​​​​3.bean的生命

4.注册实现bean的配置

  • ​​​​​​​@Component:创建对象 <===> <bean class=""></bean>
  • @Component("id"):创建对象 <==> <bean id="" class=""></bean>
  • @Controller: 表示层
  • @Service:业务逻辑层
  • @Repository:数据持久层
  • @Autowired: 按照类型自动注入(找不到:不注入;找到一个:注入成功;找到多个:异常)
  • 按照名称注入:
    • 1.@Autowired
    • @Qualifier("name")
    • 2.@Resource
  • 前提: spring-aop.jar

​​​​​​​5.spring整合junit​​​​​​​

  • junit:用于单元测试。
    • junit使用:导入junit(junit 4)
    • spring整合junit:spring-test.jar
  • 代理
    • 对象访问前后实现预处理,过滤等处理。
  • 代理模式
    • 静态代理: 编译期间为每个委托类创建代理类。
    • 动态代理: 运行期间为每个委托类的对象创建代理对象。
      • 接口+实现类 (jdk的动态代理)
      • 实现类(cglib的动态代理)

​​​​​​​6.Aop​​​​​​​

  • 面向切面编程。采用横向抽取方式,在运行阶段将增强代码织入目标对象的思想。底层采用动态代理。
    • aop应用场景
      • 事务管理,日志系统,性能监测,缓存等...
    • aop框架
      • spring aop(spring-aop.jar)
      • aspectj(aspects.jar)
      • jboss
    • aop的专业术语
      • target: 目标对象
      • advice: 通知,增强代码(遵循特定规范的增强代码)
      • joinpoint: 连接点,目标对象方法
      • pointcut: 切入点,真正添加增强的目标对象的方法
      • weaver: 织入,增强代码添加到切入点的过程。
      • aspect:切面,增强代码和切入点连接形成逻辑面。
    • aop编程
      • 导入jar
        • 4+1
        • spring-aop.jar:spring aop框架
        • aspects.jar:aspectj规范
        • aopalliance-1.0.jar:aop联盟(规范通知)
        • aspectjweaver.jar:实现织入

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/83313712
今日推荐