当前位置: 首页 > news >正文

新网网站制作免费域名邮箱

新网网站制作,免费域名邮箱,网站专栏建设工作方案,邢台专业网站建设报价Bean扫描 Spring中使用标签扫描或者注解 Springboot中没有使用标签或者注解它是怎么扫描的我的controlelr,service等等 核心在于springboot启动类中的SpringBootApplication注解 此注解其实是一个组合注解 它组合了一个ComponentScan注解,相当于在启…

Bean扫描

Spring中使用标签扫描或者注解

Springboot中没有使用标签或者注解它是怎么扫描的我的controlelr,service等等

核心在于springboot启动类中的@SpringBootApplication注解

此注解其实是一个组合注解

它组合了一个@ComponentScan注解,相当于在启动类也添加了这个注解,所以不需要我们手动添加也可以扫描

但是我们没有设置它的扫描范围它是怎么扫描的呢,那是因为,它的默认扫描范围是添加了该注解的类所在的包及其子包

如果想要扫描到启动类所在包之外的包,需要手动在启动类中配置@ComponentScan

Bean注册

如果要注册的bean对象来自第三方(不是自定义的),是无法用@Component及衍生注解声明bean的

使用Maven命名将第三方jar安装到本地仓库

然后win + R-->cmd输入脚本

在pom.xml中引入依赖

@Bean

  • 在启动类中创建一个方法,次方法只需要返回一个对象就行(不推荐使用)

测试

如果想要通过名字来获取直接写方法名

对象默认的的名字就是:方法名

自定义名字@Bean(“自己取名字”)

  • 创建一个配置类,在配置类里面集中注册

使用@ Configuration来标识当前类是一个配置类

配置类也需要放到启动类所在的包或子包下才会被扫描

在配置类中添加一模一样的方法

注入多个第三方对象,在配置中继续写方法

如果方法的内部需要使用到ioc容器中已经存在的bean对象,那么只需要在方式上声明,以参数的形式传入,spring会自动注入

@Import

在启动类上使用@Import(xxx.class),导入一个其他类,spring会自动把xxx类注入到ioc容器中,这里的xxx类可以是任意类(普通类,配置类)

常用的类

       导入配置类

       导入ImportSelector接口实现类

配置类

@Import(配置类.class)

一旦用了@Import相当于我在手动扫描这个类,没有用自动扫描,所以当配置类没有在启动类的包或子包下也能扫描到

注入多个配置类

不推荐,建议使用导入ImportSelector接口实现类

@Import({配置类.class ,配置类.class ,配置类.class ,配置类.class })

ImportSelector接口实现类

定义一个类去实现ImportSelector接口,重写selectImports()方法

Springboot会自动调用selectImports()方法,得到全限定名的数组,然后把这些类的bean对象自动注入到ioc容器中

为了防止硬编码,这些全限定名一般写入文件中,然后从文件中读取出来

文件中的一个全限定名写一行

优化@Import注解

在启动类上使用@Import(CommonImportSelector.class),感觉不好看,

能不能像@SpringBootApplication这样

自定义一个注解

需要复制

@Target({ElementType.TYPE}) //可以在类上使用@Retention(RetentionPolicy.RUNTIME) //可以保留在运行时阶段

在添加上一个ImportSelector接口实现类

@Import(CommonImportSelector.class)

优化后

Bean注册条件

给第三方bean对象注入值的方式

方式一

在方法中手动赋值(不推荐使用)

方法二

从文件中读取

使用@Value来获取值

当我们将配置文件中的数据注释了在使用@Value获取,在注入到对象时就会报错,有没有一种方法,当我们配置文件有数据时注入对象,没有数据时就不注入对象。

这时候就要用到bean的注册条件了

SpringBoot提供了设置注册生效条件的注解@Conditional,此数据使用很麻烦,所以它提供了很多的衍生注解。

三个常用注解

@ConditionalOnProperty(prefix = “前缀”,name = “指定键名(方法参数名)”)

@ConditionalOnMissingBean(xxx.class)

@ConditionalOnProperty(name = “指定类的全限定名”)

http://www.yidumall.com/news/4782.html

相关文章:

  • 北京建设网站哪里好广告发布平台app
  • 户型图在线设计网站北京外贸网站优化
  • 网站地图样本宁波seo搜索优化费用
  • 济南济南网站建设公司成品网站货源1688在线
  • 网站开发用什么系统在线培训平台有哪些
  • 做电力 公司网站推广注册app赚钱平台
  • 局网站建设申请seo研究中心好客站
  • 网站的兼容性设计网站排行榜前十名
  • 网站建设seo优化的好处网站维护主要做什么
  • 大连网站制作公司58专业制作网站的公司哪家好
  • 网站建设的技术风险分析与规避如何建立个人网站的步骤
  • 象山县城乡和住房建设局网站全网关键词搜索工具
  • 住房和城乡建设部建造师官网西安官网seo
  • 做精酿啤酒购买的网站启信聚客通网络营销策划
  • 一些难以发现的网站抖音流量推广神器软件
  • 网站建设需要平台我是站长网
  • 家教中介网站开发店铺推广
  • 亚马逊网站怎么做推广手机广告推广软件
  • wordpress本地安装500关键词排名优化工具有用吗
  • 做宣传单用什么网站找图片手机怎么建网站
  • 门户网站建设自查报告今天最新新闻国内大事件
  • 网站建设与推广合肥无锡百度正规推广
  • 做贸易怎么找客户网站内部链接优化方法
  • 深圳 旅游 网站建设百度开发者平台
  • 餐厅网站建设方案常用的搜索引擎有哪些?
  • 湘潭做网站价格 磐石网络企业网站seo排名优化
  • 全屏网站模板中国新冠疫情最新消息
  • 手机网站如何做才能兼容性各种手机国家高新技术企业查询
  • 返回链接 网站惩罚检查 错误检查张家界百度seo
  • 旅游网站开发目的和意义武汉网络seo公司