spring 创建 bean 的 几种方式
Spring 创建 bean 有 多种方式: 自动创建,手动创建注入;
方式1: 使用 Spring XML 配置;
<bean id=''id class=''class / >
方式2: 使用 @Component, @Service, @Controler, @Repository 注解;
这几个 注解 都有 同样 的 功能,被注解的 类 将会 被 Spring 容器 创建 单例 对象。
@Component 侧重于 通用的Bean;
@Service 标识 该类 用于 业务逻辑
@Controler 标识 该类为 Spring MVC 控制器类。
@Repository 标识 该类 是一个 实体诶 。只有 属性 和 setter getter。
当用于Spring Boot 时,这些注解类 若不在根路径下 或 子路径下, 请 使用 @ComponentScan 扫描指定路径。
方式3: 使用 @Bean 注解, 这种方式 用在 Spring Boot 应用中。
@Cofiguration 标识 这个类 是 一个 Spring Boot 配置类, 其 将会 扫描 该类中 是否 存在 @Bean 的 注解 的方法。 有就创建一个 bean实例 放入容器中 名字默认就是方法名。
方法4: 使用注解@import,也会创建 对象并 注入容器中。
方式5: 使用 @ImportSelector 或者 ImportBeanDefinitionRegistar 接口, 配合 @Import 实现。
在使用 一些 Spring Boot 第三方 组件时,经常 会 看到 @Enablexxxxxxxx 来使用相关的服务。
方式6: 手动注入 Bean 容器,有些 场景下 需要代码动态注入, 以上方式都不适用。 这时就 需要 创建 手动注入。
通过 DefaultListableBeanFactory 注入。
这种方式 的应用场景 是 为 接口创建动态 代理 对象, 并 向 Spring 容器注册。
比如 Mybatis 中的 Mapper 接口 , Mapper 没有实现类, 启动时 创建 动态 代理对象, 将该对象 注册到 容器中, 使用时 只要 @Autowired 注入 即可使用, 调用接口方法 会被代理 拦截, 进而 调用 相关的 SqlSession 执行相关的 SQL 业务逻辑。
spring 创建 bean 的 几种方式的更多相关文章
- spring创建bean的三种方式
spring创建bean的三种方式: 1通过构造方法创建bean(最常用) 1.1 spring默认会通过无参构造方法来创建bean,如果xml文件是这样配置,则实体类中必须要有无参构造方法,无参构造 ...
- Spring 创建Bean的6种方式
前言 本文讲解了在Spring 应用中创建Bean的多种方式,包括自动创建,以及手动创建注入方式,实际开发中可以根据业务场景选择合适的方案. 方式1: 使用Spring XML方式配置,该方式用于在纯 ...
- 7 -- Spring的基本用法 -- 7... 创建Bean的3种方式
7.7 创建Bean的3种方式 ① 调用构造器创建Bean. ② 调用静态工厂方法创建Bean. ③ 调用实例工厂方法创建Bean. 7.7.1 使用构造器创建Bean实例. 使用构造器来创建Bean ...
- Spring创建JobDetail的两种方式
一.Spring创建JobDetail的两种方式 二.整合方式一示例步骤 1.将spring核心jar包.quartz.jar和Spring-context-support.jar导入类路径. 2.编 ...
- spring 注入bean的两种方式
我们都知道,使用spring框架时,不用再使用new来实例化对象了,直接可以通过spring容器来注入即可. 而注入bean有两种方式: 一种是通过XML来配置的,分别有属性注入.构造函数注入和工厂方 ...
- Spring获取bean的几种方式
工作中需要对一个原本加载属性文件的工具类修改成对数据库的操作当然,ado层已经写好,但是需要从Spring中获取bean,然而,工具类并没有交给Spring来管理,所以需要通过方法获取所需要的bean ...
- spring 装配bean的三种方式
这段时间在学习Spring,依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 什么是依赖注入呢?也可以称为控制反转,简单的来说,一般完成稍微 ...
- spring-第六篇之创建bean的3种方式
1.创建bean的方式有3种: 1>使用构造器创建bean,即设值注入.构造注入本质都是使用bean的构造器创建bean的. 2>使用静态工厂方法创建bean. 3>调用实例工厂方法 ...
- spring装配bean的三种方式及其混合装配
在spring容器中装配bean有三种基本方式和混合装配方式: 隐式的bean自动发现机制和自动装配 在java中进行显式配置 在xml中配置 混合装配(在多个java文件中配置.在JavaConfi ...
- Spring定义Bean的两种方式:和@Bean
前言: Spring中最重要的概念IOC和AOP,实际围绕的就是Bean的生成与使用. 什么叫做Bean呢?我们可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean. 今天 ...
随机推荐
- 真正“搞”懂HTTP协议12之缓存代理
我们在前两篇的内容中分别学习了缓存和代理,大致了解了缓存有哪些头字段,代理是如何服务于服务器和客户端的,那么把两者结合起来,代理缓存,也就是说代理服务器也可以缓存,当客户端请求数据的时候,未必一定要追 ...
- 【一句话】Redis的3中缓存策略
首先一句话: 旁路缓存模式策略:写->写DB,删缓存,读->读cache,没有则读DB,然后更新到缓存 读写穿透策略:写->写缓存,然后由缓存系统写DB,读->读cache,没 ...
- Redis01 Redis详细介绍
参考:https://blog.csdn.net/u011863024/article/details/107476187 学习视频 redis官网 redis中文网 JAVA源码 1 sql的发展 ...
- Requset02
其他功能: 1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数 1. String getParameter(String name):根据参数名称获取参数值 ...
- css 显示n行文字的方法 超出的部分用省略号代替
// 超出的部分用省略号代替 text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; // 显示文字的行数 over ...
- 爬取精美壁纸5w张,爱了爱了
近日接到一个需求--爬取某应用商店所有在线销售壁纸,这个任务起初让我惊呆了.因为上级没有给我解决风控问题,若爬取在售资源被人家厂商追责怎么办?若造成人家服务器出问题怎么办?问的时候上级含糊其辞,唉!其 ...
- Centos7部署rsync配合inotify进行系统文件实时备份
转载csdn: Centos7部署rsync配合inotify进行系统文件实时备份_xixixilalalahaha的博客-CSDN博客
- CSS3--点击弹出菜单动画
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...
- js中的for循环,循环次数会多出一次。当循环到最后一个的时候,循环还会继续,并且此时i就变成remove?
for (i in points) 改成 for(var i = 0; i < points,length; i++)
- 彰显个性│github 和 gitlab 之自定义首页样式
目录 个性首页 制作步骤 修改内容 个性首页 相信很多小伙伴在逛 github 和 gitlab 的时候 会发现很多开发者的首页异常的炫酷,如 https://github.com/autofelix ...