容器配置及Spring Boot注解

@autowired@autowired注解用于标记spring将要解析和注入的依赖项。此注解可以作用在构造函数、字段和setter方法上。
作用于构造函数
下面是@autowired注解标注构造函数的使用示例:
作用于setter方法
下面是@autowired注解标注setter方法的示例代码:
作用于字段
@autowired注解标注字段是最简单的,只需要在对应的字段上加入此注解即可,示例代码如下:
###@primary
当系统中需要配置多个具有相同类型的bean时,@primary可以定义这些bean的优先级。下面将给出一个实例代码来说明这一特性:
输出结果:
this is send dingding method message.@postconstruct与@predestroy值得注意的是,这两个注解不属于spring,它们是源于jsr-250中的两个注解,位于common-annotations.jar中。@postconstruct注解用于标注在bean被spring初始化之前需要执行的方法。@predestroy注解用于标注bean被销毁前需要执行的方法。下面是具体的示例代码:
@qualifier当系统中存在同一类型的多个bean时,@autowired在进行依赖注入的时候就不知道该选择哪一个实现类进行注入。此时,我们可以使用@qualifier注解来微调,帮助@autowired选择正确的依赖项。下面是一个关于此注解的代码示例:
@springbootapplication
@springbootapplication注解是一个快捷的配置注解,在被它标注的类中,可以定义一个或多个bean,并自动触发自动配置bean和自动扫描组件。此注解相当于@configuration、@enableautoconfiguration和@componentscan的组合。
在spring boot应用程序的主类中,就使用了此注解。示例代码如下:
@springbootapplicationpublic class application{ public static void main(string [] args){ springapplication.run(application.class,args); }}@enableautoconfiguration
@enableautoconfiguration注解用于通知spring,根据当前类路径下引入的依赖包,自动配置与这些依赖包相关的配置项。
@conditionalonclass与@conditionalonmissingclass
这两个注解属于类条件注解,它们根据是否存在某个类作为判断依据来决定是否要执行某些配置。下面是一个简单的示例代码:
@configuration@conditionalonclass(datasource.class)class mysqlautoconfiguration { //...}@conditionalonbean与@conditionalonmissingbean
这两个注解属于对象条件注解,根据是否存在某个对象作为依据来决定是否要执行某些配置方法。示例代码如下:
@bean@conditionalonbean(name=datasource)localcontainerentitymanagerfactorybean entitymanagerfactory(){ //... }@bean@conditionalonmissingbeanpublic mybean mybean(){ //... }@conditionalonproperty
@conditionalonproperty注解会根据spring配置文件中的配置项是否满足配置要求,从而决定是否要执行被其标注的方法。示例代码如下:
@bean@conditionalonproperty(name=alipay,havingvalue=on)alipay alipay(){ return new alipay(); }@conditionalonresource
此注解用于检测当某个配置文件存在使,则触发被其标注的方法,下面是使用此注解的代码示例:
@conditionalonresource(resources = classpath:website.properties)properties addwebsiteproperties(){ //... }@conditionalonwebapplication与@conditionalonnotwebapplication
这两个注解用于判断当前的应用程序是否是web应用程序。如果当前应用是web应用程序,则使用spring webapplicationcontext,并定义其会话的生命周期。下面是一个简单的示例:
@conditionalonwebapplicationhealthcheckcontroller healthcheckcontroller(){ //... }@conditionalexpression
此注解可以让我们控制更细粒度的基于表达式的配置条件限制。当表达式满足某个条件或者表达式为真的时候,将会执行被此注解标注的方法。
@bean@conditionalexception(${localstore} && ${local == 'true'})localfilestore store(){ //... }@conditional
@conditional注解可以控制更为复杂的配置条件。在spring内置的条件控制注解不满足应用需求的时候,可以使用此注解定义自定义的控制条件,以达到自定义的要求。下面是使用该注解的简单示例:
@conditioanl(customconditioanl.class)customproperties addcustomproperties(){ //... }

深入理解Linux修改hostname
号称小“低配版昂科威”?新款雪佛兰探界者中型大SUV即将上市
选择AlmaLinux作为CentOS替代方案的一些原因
如何使用Arduino创建停车门禁控制系统?
8051单片机供水系统水位控制的硬件电路设计
容器配置及Spring Boot注解
无线连接航空航天和国防世界
数字电路中施密特触发器与比较器电路有何区别
试管恒温仪温度校准仪测温范围广,精度高 , 镀金探头,适配各种类型的恒温器
百度、小米、中国移动共同发力物联网,移动网络成发展瓶颈
小米1s和小米青春版的区别_小米1s和小米青春版对比
AWE2023全电智慧厨房受追捧 国爱等离子电火灶开创“电明火”时代
电池保护应用防死锁电流的保护器件
iPhone12翻车不断?许多买了iPhone12的人大呼后悔
Silicon Labs其蓝牙Mesh技术被小米用于发布的智能家居产品中
App Store经过重新设计后,浏览下载量提高显著
如何使用区块链进行数字签名
红魔5G新机曝光搭载了骁龙865平台支持55W快充
福禄克Ti400红外线热像仪按键无反应维修
手机锂电池测试中大电流弹片微针模组的作用