Spring

Spring:
分层的JavaSE/EE应用全栈的 轻量的 开源的半成品框架 IOC aop  
IOC和AOP延申事务处理(用来简化开发)

在Spring之前 创建对象需要new一个对象出来
IOC:耦合度太高 就有了解决方案(直接给一个对象)
IOC控制反转:对象的创建控制权由Spring IOC容器来负责 这种为控制反转

好处:为了充分解耦 而Spring实现了这个IOC容器,而这些对象就称为Bean
IOC就可以给到Service和Dao层,而Service需要依赖Dao
IOC就可以把他俩绑定,这就叫依赖注入:DI
有两种方式:set注入和构造注入
管理Service和Dao

Bean的生命周期:
1.当scope的取值为singleton(默认)Bean创建的对象为一个
当spring核心文件被加载时 容器就被创建出来了 对象也被创建出来了
当应用加载的时候 对象就一直在
当应用程序被卸载时 对象就被销毁了
2.当scope的取值为prototype时  Bean创建的对象为多个
当调用getBean()方法时实例化Bean
当使用对象时 创建新的对象实例
对象运行时:只要对象在使用中 就一直在
销毁:当对象长期不使用的时候 就被java回收机制给回收了(JVM)
实例就是对象被创建的过程


Bean: 
Bean的顺序不重要,Spring根据依赖关系会自动正确初始化
类也是bean 把类里的代码都放到容器Bean里 所以才会运行
配置文件:ApplicationContext
BeanFactory和ApplicationContext的区别在于,BeanFactory的实现是按需创建,即第一次获取Bean时才创建这个Bean,
而ApplicationContext会一次性创建所有的Bean(我们总是使用ApplicationContext)
配置类:bean标签配置bean id起名字 class定义bean的类型
接口创建对象需要new他的实现类    
bin:二进制启动文件
@Component:使用在类上用于实例化Bean
@Controller使用在Controller的实例化对象
@Service使用在Service的实例化对象
@Repository dao层的实例化对象
@Autowired使用字段上用于根据类型依赖注入
@Resource相当@Autowired+@Qualifier按照名称进行注入
@Qualifier结合@Autowired一起使用用于根据名称进行依赖注入
@Value  注入普通属性

AOP是函数式编程的一种衍生泛型 是面向对象的延续
AOP可以对业务逻辑的各个部分进行隔离 
从而使得业务逻辑各部分之前的耦合度降低 
AOP的作用 在不修改源代码的情况下对方法进行功能增强
优势:减少重复代码 提高开发效率 并且使于维护


反射:检测和修改他本身状态或行为的一种能力 并能根据自身行为的状态和结果
调整或修改应用所描述行为的状态和相关的语义。

本来创建类之后 知道他的方法和属性 但是程序本身不知道他有什么 通过.getclass的方法 获取它的字节码对象 就知道他的属性和方法

JDK动态代理:创建个目标类的对象 创建个代理对象  参数获取类加载器 再获取目标对象的接口 生成代理对象(对象 方法 实参)
调用目标对象方法;
优势:减少重复代码提高开发效率 并且使于维护
静态代理
 

相关推荐

  1. <span style='color:red;'>Spring</span>

    Spring

    2024-06-10 21:06:01      33 阅读
  2. <span style='color:red;'>Spring</span>

    Spring

    2024-06-10 21:06:01      21 阅读
  3. <span style='color:red;'>spring</span>

    spring

    2024-06-10 21:06:01      14 阅读
  4. Spring

    2024-06-10 21:06:01       14 阅读
  5. <span style='color:red;'>Spring</span>

    Spring

    2024-06-10 21:06:01      9 阅读
  6. <span style='color:red;'>Spring</span>

    Spring

    2024-06-10 21:06:01      10 阅读
  7. <span style='color:red;'>Spring</span>

    Spring

    2024-06-10 21:06:01      10 阅读
  8. Spring

    2024-06-10 21:06:01       11 阅读
  9. <span style='color:red;'>Spring</span>

    Spring

    2024-06-10 21:06:01      14 阅读
  10. <span style='color:red;'>Spring</span>

    Spring

    2024-06-10 21:06:01      10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 21:06:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 21:06:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 21:06:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 21:06:01       18 阅读

热门阅读

  1. C语言中整形提升举例说明

    2024-06-10 21:06:01       10 阅读
  2. C#--使用CMake构建C++程序调用示例

    2024-06-10 21:06:01       13 阅读
  3. ubuntu20.04 升级(卸载安装)NVIDIA 驱动程序

    2024-06-10 21:06:01       11 阅读
  4. 硬件工程师学习规划

    2024-06-10 21:06:01       12 阅读
  5. BGP选路规则

    2024-06-10 21:06:01       11 阅读
  6. EntitiesSample_9. CrossQuery

    2024-06-10 21:06:01       12 阅读