zoukankan      html  css  js  c++  java
  • 什么是DI

    Spring致力于简化java企业级开发,促进代码松耦合,成功的关键在于依赖注入和AOP
    Spring通过应用上下文(Application Context)装载bean的定义并把他们组装起来。Spring应用上下文全权负责对象的创建和组装。Spring自带了很多上下文,他们的区别仅仅在于如何加载配置 如从代码中加载或Xml中加载bean

    Spring如何定义Bean的

    1.通过构造方法定义Bean
    2.通过java类的setter方法定义
    3.通过注解定义Bean
    
    • 1
    • 2
    • 3

    构造方法和setter方式定义不多说,最常用的就是通过注解定义Bean了
    Spring提供了四个注解去定义bean

    • @Component 无法定义层次的组件
    • @Comtroller 控制层组件
    • @Service 业务逻辑层组件
    • @Repository 数据持访问层组件

    还可以通过@Configuration注解注释这是个配置bean,
    另外还有 @Bean注释表明这是一个简单的bean

    @Bean注解会告诉Spring这个方法将会返回一个对象,该对象要注册为Spring应用上下文中的bean,方法体中b包含了最终产生bean实例的逻辑。
    这里写图片描述

    Spring如何获取Bean的

    在程序初始化的时候Spring会根据@ComponentScan注解扫描当前包和子包内含有@Component @Controller @Service @Repository @Configuration @Bean注解的类,并初始化到Spring容器中

    在spring4之后优化为不自动实例化,只在方法调用时进行Bean的实例化
    
    • 1

    Spring如何装配注入Bean的

    • Spring提供了五种自动装配的类型

    no:显示指明不使用Spring的自动装配功能
    byName:根据属性和组件的名称匹配关系来实现bean的自动装配
    byType:根据属性和组件的类型匹配关系来实现bean的自动装配,有多个适合类型的对象时装配失败
    constructor:与byType类似是根据类型自动装配,但是要求待装配的bean有相应的构造函数
    autodetect:利用Spring的自省机制判断使用byType或是constructor装配

    1. 使用XML方式进行装配

    2. 使用注解的方式进行装配

    Spring通过@Resource注解和@Autowire实现自动装配

    @Resource 根据byName进行装配
    @Autowire通过byType进行装配

    目前开发来说一般都是基于注解定义bean,基于注解注入bean,维护成本更低,类型更加安全并且更易于重构, springboot的兴起已经使xml逐步淘汰xml配置起来也比较麻烦。

    原文:https://blog.csdn.net/qq_34581118/article/details/80610730

  • 相关阅读:
    精选css动画库及其使用
    使用js reduce方法求数组中出现次数最多的元素
    文字横向滚动效果,公告效果
    判断是否是微信端
    移动端input/textarea输入框光标高度兼容及其他事项
    更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支
    Git 常见问题整理
    CentOS 7.0 安装配置LAMP服务器方法(Apache+PHP+MariaDB)
    centos7安装eclipse
    centos7安装mplayer的方法
  • 原文地址:https://www.cnblogs.com/coder-ahao/p/14225767.html
Copyright © 2011-2022 走看看