草庐IT

java - 使用注释时如何声明 Spring bean autowire-candidate ="false"?

我正在使用@ComponentScan和@Component来定义我的springbean。我想要将这些bean之一声明为autowire-candidate=false。这可以通过xml中的这个属性来完成。注释中没有等价物吗?我想要这个的原因是因为我有2个相同接口(interface)的实现,我不想使用@Qualifier。编辑:使用@Primary是一种有效的变通方法,但在我看来,autowire-candidate是一个有用的功能,具有自己的语义。谢谢 最佳答案 看起来Spring拒绝了autowire-candidate=f

java - Spring bean 字段注入(inject)

使用SpringIoC允许设置通过setter公开的bean属性:publicclassBean{privateStringvalue;publicvoidsetValue(Stringvalue){this.value=value;}}而bean定义是:是否有任何现有的SpringFramework插件/类允许直接将bean字段公开为属性而不定义setter?像这样具有相同bean定义的东西:publicclassBean{@PropertyprivateStringvalue;} 最佳答案 你可以:使用@Value注释并注入(i

java - 是否有使用带注释的方法参数启用 JSR 303 Bean 验证的标准方法

我一直在四处寻找一段时间,但没有运气。我不不使用SpringMVC但仍想使用@javax.validation.Valid启用方法参数的验证。举个例子publicclassEventServiceImplimplementsIEventService{@Overridepublicvoidinvite(@ValidEventevent,@ValidUseruser){...}}使用MVC,为@Controller启用此功能用简单的注释的bean(见5.7.4.3ConfiguringaJSR-303ValidatorforusebySpringMVC)。使用AOP应该很简单。不过,我怀

java - "proxy a bean"是什么意思?

在工作和在线时,我不断听到有关企业Java开发的“代理”一词。例如,metrics-spring使用这个短语:Thismoduledoesthefollowingthings:Createsmetricsandproxiesbeanswhichcontainmethodsannotatedwith@Timed,@Metered,@ExceptionMetered,and@Counted[emphasismine]我不熟悉Java框架和库生态系统中的许多语言。感觉自己对whatabeanis有了很好的理解,但我仍然不清楚如何代理bean。代理一个bean是什么意思?

spring - NoUniqueBeanDefinitionException : No qualifying bean of type [javax. persistence.EntityManagerFactory] ​​已定义:预期单个匹配 bean

我有2个独立的数据库,我正在尝试在存储库中访问它们。不幸的是,我收到以下异常。我尝试过的事情已尝试将其中一个bean设为Primary。已使用PersistenceContext,如下面的代码所示。我的异常追踪Exceptioninthread"main"org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'orderController':Injectionofautowireddependenciesfailed;nestedexceptionisorg.springfra

java - 自定义 Spring 数据存储库 bean 名称以用于多个数据源

我有一个项目,它利用SpringData(在本例中为MongoDB)与具有相同架构的多个数据库进行交互。这意味着每个数据库都使用相同的实体和存储库类。所以,例如:publicclassThing{privateStringid;privateStringname;privateStringtype;//etc...}publicinterfaceThingRepositoryextendsPagingAndSortingRepository{ListfindByName(Stringname);}@Configuration@EnableMongoRepositories(basePa

java - 将 spring bean 加载到 servlet

有很多关于如何完成这项任务的文档,但我仍然无法解决我的问题。我是使用servlet的新手,所以我可能错过了一些东西。我使用使用tomcat6的red5创建一个servlet,该servlet使用属于MysqlDb类的springbean进行数据库操作。当我使用端口5080指向red5时,它充当常规的tomcat服务器,我可以浏览jsp和servlet页面。我的web.xml包含以下相关信息:org.springframework.web.context.ContextLoaderListenerfbauthcom.xpogames.FbAuthfbauth/fbauth我的applic

spring - 未调用 Spring 单例 bean 的 @PreDestroy 方法

我在beans.xml中定义了一个Springbean,如下所示:[...]bean内部有2个方法,必须在Web应用程序启动和终止之前执行:publicclassBackendBeanimplementsIBackend{privatestaticfinalLoggerLOGGER=LoggerFactory.getLogger(BackendBean.class);@PostConstructpublicvoidinit(){LOGGER.debug("init");}@PreDestroypublicvoiddestroy(){LOGGER.debug("destroy");}}当

java - 如何覆盖 Spring bean 定义但仍然引用被覆盖的 bean?

我正在尝试通过使用我的委托(delegate)服务覆盖原始服务的bean定义来实现委托(delegate)服务提供者。但是,顾名思义,委托(delegate)服务需要对原始服务的引用才能将调用委托(delegate)给。我无法弄清楚如何在使用原始beandef时覆盖bean定义而不会遇到循环引用问题。例如:这可能吗? 最佳答案 对您的问题的简短回答是,您不能有两个同名的bean定义。如果你尝试,一个会隐藏另一个,并且只有一个定义可用。您的问题的示例似乎表明您正在尝试将原始servicebean包装在代理对象中,包装器执行一些前后工作

spring - 使用 Spring Data JPA、Hibernate 和多事务管理器 : No bean named 'transactionManager' is defined

编辑:对于可能对此问题感兴趣的人,我会在问题的末尾提供问题分析和相关解决方案。我正在为使用Spring3.2、Hibernate4.1、SpringDataJPA1.3和ApacheCXF2.5(特别是JAX-RS模块)的Web应用程序配置一个模块。我有以下配置(运行良好,为简洁起见省略了详细信息):@Bean(name="entityManagerFactory")publicLocalContainerEntityManagerFactoryBeangetEntityManagerFactory()throwsSQLException{LocalContainerEntityMan