草庐IT

Bean注解

全部标签

java - 运行时类路径中是否需要注解类文件?

如果一个类被注解了,那么该注解的定义是否必须在运行时类路径中才能使用该类?例如,给定注释importjava.lang.annotation.ElementType;importjava.lang.annotation.Target;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Retention;@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)public@interfaceComponent{}我可以执行程序吗@Com

java - Spring 在 Filter 中使用 @Value 注解

我目前正在开发一个Spring项目,我正在制作一个新过滤器来检查请求中是否发送了有效的JWT。我遇到了一个问题,我无法像这样使用@Value注释从我的application.yml文件中获取值。@Component@Order(2)publicclassJwtConfigurationimplementsFilter{@Value("${jwt.secret}")privateStringjwtSecret;我知道这很好用,因为我在单元测试中有同样的东西。我在某处读到过滤器不在应用程序上下文中,因此它无法访问配置,我将无法Autowiring依赖项。有谁知道从我的application

java - 在方法体内处理注解

我正在使用PluggableAnnotationProcessingAPI处理Java注释。是否也可以处理方法体内部中使用的注解?感谢帮助。彼得 最佳答案 我想,我找到了解决方案。正如我所想,当前的javac是不可能的。本地注释只是简单的注释,不会被可插入的注释处理api处理。但是在JSR308中有一些有趣的努力,处理支持奇妙事物的类型注释,如类型变量、局部变量、带注释的类型检查和转换的参数……看起来,它将被合并到openJDK8中。不错 关于java-在方法体内处理注解,我们在Stac

java - spring 单例作用域——每个容器每个 bean

我问这个问题是针对我的问题:springsingletonscopeSpring单例在引用手册中被定义为percontainerperbean。percontainer表示如果我们喜欢:ApplicationContextcontext=newClassPathXmlApplicationContext("Beans.xml")MyBeanmyobj=(MyBean)context.getBean("myBean");//myBeanisofsingletonscope.MyBeanmyobj1=(MyBean)context.getBean("myBean");Beans.xml:然

java - junit 测试中的 spring-data-jpa bean 验证

在我最近的工作中,我使用spring-data-jpa来利用提供的存储库。当涉及到集成测试时,我无法配置(我假设)用于测试的spring上下文,因此bean验证在我的测试中不起作用。我知道我可以注入(inject)validator,并对我的注释进行单元测试,但事实并非如此。我正在编写集成测试,并希望测试有数据库支持的存储库。我准备了一个简单的项目来展示所有必要的项目文件。当我运行测试时,有2个失败了,我不知道为什么,hibernatevalidator出现在类路径上。Failedtests:insertWrongEmail(com.example.core.data.jpa.User

java - Spring组件注解编译时扫描

我相信SpringBootstrap上下文加载器监听器DispatcherServlet根据指示将在运行时在应用程序启动时(或每当收到指示时)执行组件扫描。有没有一种方法可以指示编译器(可能是通过Maven构建插件)在构建/编译期间对带注释的spring组件执行一次性静态扫描,以便不执行引导组件扫描,而不会放弃使用组件注释?作为减少启动负载和延迟的一种方式。 最佳答案 Spring5添加了一项新功能以提高大型应用程序的启动性能。它会在编译时创建候选组件列表。在此模式下,应用程序的所有模块都必须使用此机制,因为当Application

java - 使用 spring bean 的 JUnit 规则

我有一个加载测试spring应用程序上下文的测试类,现在我想创建一个junit规则,它将在mongodb中设置一些测试数据。为此,我创建了一个规则类。publicclassMongoRuleextendsExternalResource{privateMongoOperationsmongoOperations;privatefinalStringcollectionName;privatefinalStringfile;publicMongoRule(MongoOperationsmongoOperations,Stringfile,StringcollectionName){thi

java - 动态类注解

我想动态注释一个类,使它尽可能通用:publicclassTest{@XmlAttribute(name=dynamicvalue)T[]data;publicTest(Stringdynamicvalue){}}有什么办法可以达到这样的效果。助教 最佳答案 没有。注解是静态的类级信息,它们不受实例字段值的影响(不,它们也不受静态字段值的影响)。 关于java-动态类注解,我们在StackOverflow上找到一个类似的问题: https://stackove

java - 使用大量 AOP 请求作用域 bean 时的性能问题

我正在使用Spring3开发一个半大型应用程序,当同时让数百个用户使用它时,我遇到了性能问题。我正在使用几个使用Spring的AOP代理的请求范围bean,我可以看到每次我在这些bean之一上调用任何方法时,都会调用CGLIB拦截器,然后调用AbstractBeanFactory.getBean(),后者调用add()现有Springbean的同步集。由于此add()是同步的,因此当有数千个调用都在等待添加到同一列表时,它会有效地锁定服务器。有没有办法使用请求范围的bean来解决这个问题?我在Spring文档中读到,如果bean实现任何接口(interface)(http://stat

java - 记录 Spring bean 创建/依赖注入(inject)

我正在寻找一种设置Log4j(或任何其他记录器)的方法,以便每当Spring创建bean或设置bean属性时我都可以在日志中看到。例如。像这样:1:00:00CreatingbeanFoo(Foo@ef5c94)1:00:01CreatingbeanBar(Bar@147a87e)1:00:02SettingbeanFoo(Foo@ef5c94)toBar(Bar@147a87e)(...)这很容易实现吗?我正在使用Spring2.5.6(没有选择:/)和Log4j(版本无关紧要)。 最佳答案 看起来像org.springframe