Spring之@Autowired依赖注入探究
全部标签 我创建了这个测试项目,它由2个项目组成:一个使用spring-boot,一个使用spring-mvc。他们每个人都可以独立工作。我想要做的是运行spring-boot并能够通过加载其上下文来访问spring-mvc项目的网页。该项目非常简单,因为我只是想测试如何进行混音。问题是当我运行spring-boot应用程序时,无法访问来自spring-mvc的页面,因为它没有在构建中添加webbapp文件夹(包含WEB-INF)。我能够在spring-boot应用程序中从spring-mvcAutowiring服务。树看起来如下:spring-boot的Application.java类如下:
我有这个用例:我有用户。我有群组。用户和群组之间存在N:N关系。我无法删除用户。如果我删除一个群组,该群组中的用户不应被删除。用户端:@ManyToMany(fetch=FetchType.EAGER)@JoinTable(name="USERS_GROUPS",joinColumns=@JoinColumn(name="USER_ID",referencedColumnName="ID"),inverseJoinColumns=@JoinColumn(name="GROUP_ID",referencedColumnName="ID"))privateListgroups;组方:@Ma
我有一个带有一些独立beanX的项目,它在一堆服务中Autowiring。服务是相互使用的,最终在单一入口点(Controller)中使用。现在有新的要求:实现X的多个版本,并根据入口点的参数(枚举XType)来决定使用哪个版本。在不改变服务的情况下这样做会很好。我的解决方案想法是创建自定义范围UsesX并实现BeanFactoryPostProcessor,这会将每个带有UsesX的BeanDefinition转换为每个XType的单例集。此外,它将向该bean添加限定符,以便为X和Controller中基于参数的选择创建工厂方法成为可能。但是如何隐式地将此限定符添加到服务中的@Au
是否可以选择性地在dagger2中注入(inject)一个值?特别是,我想做这样的事情。@InjectA(Optionalb){this.b=b;}如果B在模块中未定义,我希望dagger提供一个Optional.empty(),如果它已定义则提供Optional.of(value).这是可行的还是我需要一个定义这些可选值的模块? 最佳答案 可选注入(inject)需要一个模块来将可选绑定(bind)添加到您的组件,因为Dagger需要依赖图上的每个依赖项,即使是显式缺失的依赖项。当你想用一个实现来实现这个可选时,你将向一个组件添加
我目前正在尝试将SpringBoot应用程序部署到外部Tomcat实例中,并且遇到了一些关于如何最好地管理某些事物的实例化的问题。按照目前的结构,我有一些类似的东西publicclassMyClassextendsSpringBootServletInitializer{@BeanpublicThreadPoolpool(){returnnewThreadPool();}@BeanpublicBackgroundThreadsetupInbox(){BackgroundThreadinbox=newBackgroundThread(pool());inbox.start();retur
我想在SpringBoot项目中使用Cassandra3.x。我发现SpringDataCassandra项目的当前发布版本仅支持Cassandra2.x。所以我想使用DataStaxDriver而不是SpringDataCassandra项目。我加了compile'com.datastax.cassandra:cassandra-driver-core:3.1.1'作为依赖项。现在我可以将值插入到Cassandra集群上的键空间中。但是当为RESTController运行测试时,我得到一个错误java.lang.NoClassDefFoundError:io/netty/handle
在SpringBoot文档中有一个部分UseTomcat7.xor8.0withGradle如一些spring-boot-samples所示,这对Maven非常有效,但不幸的是不适用于Gradle。有没有比从tomcat-starter中排除所有tomcat依赖项并使用另一个版本单独添加它们更简单的解决方案?重现:如果转换示例项目spring-boot-sample-tomcat80-ssl进入具有以下依赖项的Gradle项目:dependencies{compile("org.springframework.boot:spring-boot-starter:1.4.2.RELEASE
我正在使用SpringBoot迈出第一步,现在有一段时间,我遇到了以下问题。目标我想使用SpringData将应用程序数据存储在AWS上的DynamoDB中。为此,应该有一个单一的服务来封装与持久性相关的所有内容。代码应尽可能简单易读。因此,我尽量避免使用XML配置,而是使用注解。问题Spring无法Autowiring数据服务中的存储库实例(NoSuchBeanDefinitionException)。更新:集成测试也依赖于使用@Autowire的存储库(见下文),但也失败了。我还尝试创建存储库接口(interface)的虚拟实现并将其标记为@Component-这也可以正常工作。因
我正在使用Mockito测试我的Spring项目,但是@InjectMocks似乎无法将模拟服务注入(inject)另一个Spring服务(bean)。这是我要测试的Spring服务:@ServicepublicclassCreateMailboxService{@AutowiredUserInfoServicemUserInfoService;//thisshouldbemocked@AutowiredLogicServicemLogicService;//thisshouldbeautowiredbySpringpublicvoidcreateMailbox(){//domethi
我刚开始从事Web服务(Restfulapi)的创建工作。遵循JavaBrainsforRestfulwebservices的简单教程。我收到类似“带有限定符@Default的类型集的不满足依赖关系”的错误我在这里搜索了不同的问题,尝试了以下方法:下载新服务器并将其连接到我的项目并移除旧服务器。更新了guava依赖项并将其jar添加到我的项目中。仍然面临错误。下面是服务器错误日志。Severe:Exceptionwhileloadingtheapp:CDIdeploymentfailure:WELD-001408:UnsatisfieddependenciesfortypeSetwit