(仍然有点新的春季) 我需要同时使用@Scheduled和@Transactional的服务方法,这样我就可以在其中打电话. 启用了声明交易,交易管理器是基于休眠会话工厂的org.springframework.orm.hibernate3.HibernateTransactionManager. 服务类未实现任何接口,因此使用CGLIB代理. 此设置通常可以正常工作(从Web堆栈中调用的方法,即支柱),但是此方法在调度程序调用时会引起例外. 这是代码的相关位: 服务方法(类称为ClientWakeAndTerminateManager): @Scheduled(initialDelay = 5000, fixedRateString = "${rmi.server.threads.clientsScheduleManagement.rate}") @Transactional(readOnly = true) public vo
以下是关于 spring-annotations 的编程技术问答
我有三个类,所有这些都需要根据@conditionalonexpression Annotaion启用/禁用.所有这些都在单独的.java文件中. ex: @ConditionalOnExpression("#T(com.xxx.xxx.xxx.xxx.CxProperties).isAEnabled()}") Class A{ } @ConditionalOnExpression("#T(com.xxx.xxx.xxx.xxx.CxProperties).isBEnabled()}") Class B{ } @ConditionalOnExpression("#T(com.xxx.xxx.xxx.xxx.CxProperties).isCEnabled()}") Class C{ } 现在,我在另一个类中有一个初始化函数,该类别首先被执行,然后将enable/disable值设置为cxproperties类. 注意:假设所有设定器都是静态 class se
我被问到(并问自己)很多次,避免在弹簧靴@Qualifier注释中避免出现错误的字符串的最佳方法是什么. (当然还有其他注释.) 什么比在整个代码上分布@Qualifier("variantABC")或@Qualifier("variantCBA")更好?例如,在春季批处理中,我有预选赛以区分不同的工作及其步骤,这些工作至少使用了三到四次. 正在使用(仅)常数字符串的接口或类,真的[仅|最佳|清洁]解决方案? public class Variants{ public final static String VARIANT_ABC = "variantABC"; public final static String VARIANT_CBA = "variantCBA"; } 或我们可以做得更好? 解决方案 我发现,对我的最佳解决方案是使用我自己的注释而不是使用字符串注释. 为什么不使用字符串? 注释中的字符串具有明显的缺点,您可以轻松地在
我想验证控制器中的请求参数之一.请求参数应来自给定值的列表之一,如果不是,则应抛出错误.在以下代码中,我希望请求参数订单订购来自@ValuesAllowed中存在的值列表. @RestController @RequestMapping("/api/opportunity") @Api(value = "Opportunity APIs") @ValuesAllowed(propName = "orderBy", values = { "OpportunityCount", "OpportunityPublishedCount", "ApplicationCount", "ApplicationsApprovedCount" }) public class OpportunityController { @GetMapping("/vendors/list") @ApiOperation(value = "Get all vendors") pu
我正在使用Spring 3.0.5,并且正在尽可能多地为我的班级成员使用@Autowire注释.我需要自动的豆子之一需要向其构造函数进行参数.我已经浏览了春季文档,但似乎找不到有关如何注释构造函数的任何引用. 在XML中,我可以用作Bean定义的一部分. @Autowire注释是否有类似的机制? ex: @Component public class MyConstructorClass{ String var; public MyConstructorClass( String constrArg ){ this.var = var; } ... } @Service public class MyBeanService{ @Autowired MyConstructorClass myConstructorClass; .... } 在此示例中,如何用@Autowire注释在mybeanservice中指定"约束"的值?有
我正在尝试以春季配置配置开钻.使用XML配置时,就像 如何在配置文件中定义资源.我尝试使用ctx.getResource(),但无法访问配置类中的applicationContext. 我尝试了contextrefreshedevent并从那里添加资源,但仍然没有运气. (已调用后propertiesset并添加了映射无法工作) public class ContextRefreshedEventBuilder extends ContextRefreshedEvent { public ContextRefreshedEventBuilder(ApplicationContext ctx
我从春季3.0.5到3.1迁移,因为我需要具有自定义requestMappingHandLermpapping.我在扩展requestMappingHandLermapping的插件中面临问题 - 我有现有的Servlet-conetxt.xml,并且使用@configuration注释添加了WebConfig.但是,我总是会收到错误的Ambiguos映射(因为在ExtendedRequestmappingHandLermpapping中定义的新注释无效). 我在Servlet-context.xml中定义了各种级别的拦截器,我想将其保留在XML配置中.我想使用. 是否有一种方法可以使用Servlet-context.xml的连词,同时延长了requestMappingHandLermapping.如果必须使用@configuration完成此操作 - 我可以同时使用@configuration和Servlet -context.xml吗?从很长一段时间以来我就一直在尝试时,
我正在使用 https://github.com/akqaber/simple-simple-spring-memcached-memcached-mcached 将备忘录集成为与弹簧的缓存实现. 但是我没有成功:p 我正在使用Spring 4和Spring-Data-JPa public interface FooRepository extends JpaRepository { @Cacheable(value = "defaultCache", key = "lala") Foo findByNameAndDescription(String name, String description); } 我为测试目的进行了硬编码.没什么特别的,请使用称为" DefaultCache"的缓存. Memcached的配置为: @Configuration @EnableAspectJAutoProxy public class
我想用招摇记录我的项目.我在项目中添加了Swagger注释和io.springfox依赖项,但是当我运行mvn clean package时,我有很多错误: PS D:\parent-project> mvn clean package [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] parent-project [pom] [INFO] module-common-lib [jar] [INFO] module1 [jar] [INFO] mod
我有一个POJO类,其中类变量通过@Value注释注入.我正在尝试使用Javax验证API验证我的类变量,因此我尝试了@NotNull,@NotEmpty和@NotBlank,但是即使在空白/null时,它们似乎都没有验证或抛出任何类型的例外值在application.yml文件中存在.关于如何使用Javax验证API在此处验证我的POJO有什么想法? PS:我正在使用Lombok生成我的Getter/Setter. 以下是我的示例代码! pojo类: @Component @Getter @Setter public class Credentials { @NotBlank @Value("${app.username}") private String user_name; @NotBlank @Value("${app.password}") private String password; } 以下是应
根据我的理解,@lazy注释和标签的懒惰属性应具有相同的功能.但是,当我开发以下代码时,它显示出不同的行为. 在以下代码中,我期望: - (循环依赖性错误) org.springframework.beans.factory.beancurranceInCreationException 我已经使用@Lazy注释附加了代码,根据我的期望,它不允许循环依赖. @Component public class A { private B b; @Autowired public A(@Lazy B b) { System.out.println("A.A() - 1-param Constructor"); this.b = b; } } @Component public class B { private A a; @Autowired public B(A a) {
使用Spring 3.1.2,Junit 4.10.0,并且两个版本都非常新.我遇到的问题是我无法获得基于注释的自动化工作. 以下是两个样本,一个不使用注释,这很好.第二个使用注释,这是行不通的,我找不到原因.我几乎遵循了Spring-MVC检验的样本. 工作: package com.company.web.api; // imports public class ApiTests { @Test public void testApiGetUserById() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("/com/company/web/api/ApiTests-context.xml"); UserManagementService userManagementService = (UserM
我有一个弹簧3.1 MVC + Hibernate 3.6项目,其Junit4测试套装.我的问题是我的测试案例没有交易,甚至以为我添加了@transactional . 我的测试案例调用控制器和DAO.在控制器中,无论如何都开始进行交易,因此不会抱怨.在dao中,我添加了@transactional(podagation = podagation.mandatory),以确保它将进行测试的交易.目前,它提出了 ilegaltransactionStateException ,我想这意味着没有当前的交易. 我试图创建程序合理的交易,并且确实有效,这意味着获得DAO服务的AOP代理不是问题的原因.但是,我想通过@transactional 注释来创建交易. 这是我的dao: // ...imports... @Repository("taskDao") @Transactional(propagation = Propagation.MANDATORY) publi
在我的实体中,我有一些验证的冬眠注释,例如@notempty,@pattern ..和其他人 在我的控制器中,在保存操作上,它具有@valid参数. 但是,如果任何实体都有任何必需的字段,没有注释我会有问题. 所以我想测试每个实体,以确保它们具有必要的注释. 类似: @Test(expect=IllegalArgumentException.class) public void testAllNull() { Person p = new Persson(); // Person name has an @NotEmpty validator.validate(p); } 但是如何验证它?谁被要求检查@Valid? 谢谢. 解决方案 我发现了如何检查: @Autowired private LocalValidatorFactoryBean validator; ... valida
我创建了一个元注释@embeddedmongodbunittest,该元素激活了两个用于弹簧的单位测试中的配置文件.基本设置有效: @Documented @Inherited @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @ActiveProfiles({"embeddedMongoDB", "embeddedMongoDBUnitTest"}) public @interface EmbeddedMongoDBUnitTest { } @RunWith(SpringJUnit4ClassRunner.class) @EmbeddedMongoDBUnitTest @ContextConfiguration(...) public class WorkingTest { ... } 现在,当试图用另一个@ActiveProfiles注释在测试类本身上激活另一个配置文件时,@embedded