最代码官方
2021-01-24 22:29:36
证
Spring通过@Required注解实现在容器启动时对bean进行依赖校验
项目描述
该注解@Required是方法级别的注解,一般是在set方法上添加
运行环境
jdk8+IntelliJ IDEA+maven
项目技术(必填)
spring+@Required
依赖包文件(可选)
链接:https://pan.baidu.com/s/1VZVlYNzEi81np3Shf7OCCQ
提取码:zl7t
是否原创(转载必填原文地址)
转载https://memorynotfound.com/dependency-checking-with-spring-required-annotation/
项目截图(必填)
运行截图(必填)
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'luke' defined in class path resource [app-config.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanInitializationException: Property 'theForce' is required for bean 'luke' at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) at com.memorynotfound.spring.core.required.Main.main(Main.java:9) Caused by: org.springframework.beans.factory.BeanInitializationException: Property 'theForce' is required for bean 'luke' at org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor.postProcessPropertyValues(RequiredAnnotationBeanPostProcessor.java:156) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ... 11 more Process finished with exit code 1
默认情况下@Required是不启动校验的,只有在如下情况下任意一种才会有效
1.初始化RequiredAnnotationBeanPostProcessor
<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"></bean>
2.配置<context:annotation-config/>
3.配置<context:component-scan/>
以上3种情况都不存在的情况下,@Required是无效的,spring正常运行
注意事项(可选)
idea也可以在编码时校验并提示,而不用等到编译运行时刻
猜你喜欢
- Spring通过@Autowired注解实现Bean依赖注入的简单实例
- spring实现忽略禁用@Required注解的实例
- 如何优雅的关闭Spring容器并销毁Bean实例
- Spring使用@Primary处理多个@Autowire申明的相同bean
- spring通过@Value注解注入到java List属性
- 自己手动模拟spring框架的IOC(依赖注入,DI,控制反转)
- spring通过3种写法来inject value到bean的property中。
- Spring Bean的Scopes范围Singleton和Prototype说明
- spring bean通过@Lazy注解实现延迟初始化实例
- spring基于多个xml文件配置实现初始化bean的实例
- Spring容器解析applicationContext.xml,提供bean的三种实例化用法(直接调用,静态工厂,实例工厂)
- java身份证校验工具类
请下载代码后再发表评论
文件名:spring-@required-annotation-example.zip,文件大小:5.236K
下载
- /
- /spring-@required-annotation-example
- /spring-@required-annotation-example/pom.xml
- /spring-@required-annotation-example/src
- /spring-@required-annotation-example/src/main
- /spring-@required-annotation-example/src/main/java
- /spring-@required-annotation-example/src/main/java/com
- /spring-@required-annotation-example/src/main/java/com/memorynotfound
- /spring-@required-annotation-example/src/main/java/com/memorynotfound/spring
- /spring-@required-annotation-example/src/main/java/com/memorynotfound/spring/core
- /spring-@required-annotation-example/src/main/java/com/memorynotfound/spring/core/required
/spring-@required-annotation-example/src/main/java/com/memorynotfound/spring/core/required/Main.java
/spring-@required-annotation-example/src/main/java/com/memorynotfound/spring/core/required/StarWars.java
/spring-@required-annotation-example/src/main/java/com/memorynotfound/spring/core/required/TheForce.java
- /spring-@required-annotation-example/src/main/java/com/memorynotfound/spring/core/required
- /spring-@required-annotation-example/src/main/java/com/memorynotfound/spring/core
- /spring-@required-annotation-example/src/main/java/com/memorynotfound/spring
- /spring-@required-annotation-example/src/main/java/com/memorynotfound
- /spring-@required-annotation-example/src/main/java/com
- /spring-@required-annotation-example/src/main/java
- /spring-@required-annotation-example/src/main
- /spring-@required-annotation-example
相关代码
- spring 各种demo实例
- [工作必备]spring定时器简单的demo
- Java Spring定时器Demo, 可自动跳过节假日
- Spring两种常用的事务管理范例AspectJ和基于注解方式
- 证 Spring生命周期默认初始化和销毁方法通过xml配置实现
- 证 spring通过@Async注解实现异步执行Service方法并且通过Java Future对象得到执行结果
- spring实例入门教程
- spring入门实例demo
- spring整合rmi代码实例
- 原证精 spring如何注入List,Set,Map对象
- Spring Hibernate Spring Data MongoDB Akka Titles Bootstrap JQuery Maven 大全
- 证 spring实现忽略禁用@Required注解的实例
最近下载
最近浏览
fuyouou LV5
2023年7月6日
and123456 LV11
2022年3月16日
最代码-宋家辉 LV61
2021年11月11日
xiao菜 LV2
2021年6月2日
3399509525 LV5
2021年4月14日
liuqingfang LV2
2021年4月2日
水光浮藻 LV6
2021年3月25日
gfdgjkfodijigidfj LV1
2021年2月10日
a1525723924 LV3
2021年2月7日
hhhhllll12
2021年2月7日
暂无贡献等级