Implementation
JSR 330带有自己的一组注释,这些注释与Spring注释不同。仅在Spring环境中使用JSR 330批注将不会带来JSR 330所需的功能-我们需要明确告知Spring容器使用它,并且Spring将覆盖其默认的bean范围策略以使用JSR 330范围。根据JSR 330规范,默认情况下,除非明确标记为单例,否则所有bean都应属于原型范围。
我们将使用JSR 330批注为它们创建一个简单的Spring Boot应用程序,其中包含三个表示为Spring bean的类。在应用程序启动时,将对它们进行扫描并将其添加到Spring上下文中。
项目结构
Steps
1.将javax.injectMaven依赖项添加到pom.xml文件中。
XML格式
<dependency> <groupId>javax.inject</groupId > <artifactId>javax.inject</arti factId> <version>1</version> </dependency>
2.通过ApplicationContextInitializer使用类型实现创建一个Initializer类AnnotationConfigApplicationContext。Spring框架带有一个名为的JSR#330元数据类Jsr330ScopeMetadataResolver。我们将使用此类,并将Spring的元数据解析器设置AnnotationConfigApplicationContext为此类,然后告诉上下文扫描程序包,以明确地定位组件/ bean。最后,我们将在Spring Application中添加初始化程序。之后,我们将在Spring容器中拥有一个JSR 330环境。
ApplicationContextInitializer
Initializer
AnnotationConfigApplicationContext
请参见下图获取我的代码:
TestBean 1:
TestBean2具有单例范围。在JSR 330环境中,我们需要显式注释单例。
TestBean3:
在启动应用程序并从上下文检查注册的bean作用域之后,控制台将如下所示:
原文链接:http://codingdict.com