Tag: dependency injection

自动assembly与在Spring中实例化

我最近开始使用Spring。 我正在制作spring mvc项目。 所以我的问题是,如果首选接口并通过spring特定实现自动assembly它或只使用类实例 如果我只有一个该接口的实现? 例如: @Controller public class MyController { @Autowired MyService myService; @RequestMap(“/”) public String mainPage() { … } } 要么 @Controller public class MyController { @RequestMap(“/”) public String mainPage() { MyService myService = new MyServiceImpl(); … } } 如果MyService接口只有一个实现?

如何在spring bean中注入String属性

我们用配置注入简单属性,如下所示: 你会用注释做什么的?

使用java,nlp的Pharse级别依赖解析器

有人可以使用Stanfords的自然语言处理Lexical Parser-开源Java代码详细说明如何获得“使用图解级别依赖”吗? http://svn.apache.org/repos/asf/nutch/branches/branch-1.2/src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/RobotRulesParser.java http://docs.mongodb.org/manual/reference/sql-comparison/ 如 分析依赖 事故———>发生了 坠落———> as 夜晚———->堕落 像更多…… 谢谢!

使用@Qualifier的@Bean声明不起作用

假设我有一个配置类(JmsQueueConfig,见下文)。 在本课程中,我想为整个应用程序配置多个队列。 对于一个队列,没有问题。 但是,当我添加第二个队列并尝试从服务(MemberService)使用其中一个队列时,Spring-boot告诉我 com.example.notification.application.jms.JmsEventPublisher中构造函数的参数1需要一个bean,但是找到了2个: – queueAccountToNotification:由类路径资源中的方法’queueAccountToNotification’定义[com / example / notification / application / jms / JmsQueueConfig.class] – queueNotificationToAccount:由类路径资源[com / example / notification / application / jms / JmsQueueConfig.class]中的方法’queueNotificationToAccount’定义 行动: 考虑将其中一个bean标记为@Primary,更新使用者以接受多个bean,或使用@Qualifier标识应该使用的bean 这是我的Config-Class: @Configuration @EnableJms @ImportAutoConfiguration(classes = { JmsAutoConfiguration.class, ActiveMQAutoConfiguration.class }) public class JmsQueueConfig { @Value(“${APP_QUEUE_ACCOUNT_TO_NOTIFICATION}”) private String queueAccountToNotificationName; @Value(“${APP_QUEUE_NOTIFICATION_TO_ACCOUNT}”) private String queueNotificationNameToAccount; @Bean @Qualifier(“q1”) public […]

DI,Guice和战略模式

假设我有以下基类,Queen和Knight作为它的衍生物。 WeaponBehaviour是一个界面。 根据具体的GameCharacter类型,我无法弄清楚如何使用Guice注入武器。 public abstract class GameCharacter { @Inject protected WeaponBehaviour weapon; public GameCharacter() { } public void fight() { weapon.useWeapon(); } public void setWeapon(WeaponBehaviour weapon) { this.weapon = weapon; } }

Spring IoC – dependency injection – > NullPointerException

我有这个结构: 接口IProjectService,由ProjectServiceImpl实现。 现在我有一个控制器,我想在其中使用dependency injection: @Controller @RequestMapping(value=”/testFolder”) public class MyDIController { … private IProjectService projectServiceImpl; public void setProjectServiceImpl(IProjectService projectServiceImpl) { this.projectServiceImpl= projectServiceImpl; } … @RequestMapping(value=”/project”, method=RequestMethod.GET) public @ResponseBody Project getProject() { Project project = this.projectServiceImpl.getProject(12); // line 37! (id 12 is a test case, it does exist, here is he error: this.projectServiceImpl = null) return project; […]

dependency injection如何工作?

我正在阅读Pro Spring 2.5书,我对dependency injection如何工作有疑问。 我理解BeanFactory并进行依赖查找。 现在我读到dependency injection,我有一些问题。 根据我的理解,您希望将查找限制到最小,例如查找对象以启动应用程序。 然后dependency injection将处理其余的事情。 但是我不明白这是有效的。 假设您有一个beanfactory,您将获得一个启动整个应用程序的MyApplication实例。 其余对象使用dependency injection来获取其协作者。 beanfactory维护它管理的bean列表,但这个工厂不仅仅在应用程序的main方法中可用吗? 如果beanfactory还管理其包含bean的范围,我不明白这是怎么做的。 豆瓣在某种程度上是全球性的吗?

没有注释的Java中的DI?

是否有任何方法(现有框架)在Java中配置DI而无需向“不属于”的类添加注释? 在我的研究中,看起来要完成构造函数注入,我们需要在构造函数中添加一些注释,如下所示: @Inject // or @Autowired for Spring Boot public MyInjectedClass(IThing1 thing1, IThing2 thing2) { … } Spring Boot还建议将@Service添加到实现中,以便将它们注册到DI中进行注入。 添加这些注释会将DI带入注入的类( MyInjectedClass和任何控制器,服务实现等)。 那些类应该没有DI的概念,它们应该只是在构造函数中给出它们要求的东西而不关心它们是如何到达那里的。 我知道你可以在Spring Boot中使用@Configuration属性,但这仍然感觉不是很可配置或强大。 有没有办法使用没有注释的Java来实现这一点? 比如SimpleInjector,AutoFac等在C#中如何工作? (通过代码配置,而不是XML或配置文件,而不是通过注释。) 如果没有,我很好奇为什么在DI和C#之间采用了这种不同的方法。 更新我在评论中冒犯了某人,但这根本不是我的意图。 我问一个合理的问题。 让我以另一种方式强调我的关切/问题。 假设我有以下包/类。 我已经标记了每种类型的DI都会出现的情况。 “出现”是指这些标记的类/包与正在使用的DI框架有一些关系。 [A] :基于注释的DI(第三方包依赖) [C] :基于配置的DI data_access [A] 资料库 PersonRepository [A] 逻辑[A] 人 CreatePersonCommandHandler [A] UpdatePersonCommandHandler [A] 服务[A] [C] 控制器 PersonController [A] [C] […]

Spring Context init(java)

我是spring的初学者,我遇到了基本的上下文初始化问题,我找不到任何简单的教程。 所以我想做的是基本的dependency injection,我已经看到我只需要将类标记为@Componant或@Service,并使用@Autowired直接将它们注入目标fiels中。 为此,我需要正确设置我的spring上下文(我需要构建一个Web服务+使用JPA,所以我想构建一个webapp) 我正在使用JDK 1.8,maven 3.2.1 我想做一个基本的dependency injection。 =>我想在那里注入一个storeImpl实例,但这会导致空指针exception=>这项工作完全没有注入(私有商店storeImpl = new storeImpl();) package com.mycompany.app.controller; @Controller public class Controller { @Autowired private Store storeImpl; public void use() { storeImpl.get(); } } package com.mycompany.app.store; public interface Store { boolean get(); } package com.mycompany.app.store; @Component public class StoreImpl implements Store { @Override public boolean get() { return […]

使用GIN在GWT中注入入口点类

我试过做这样的事情: @Singleton public class AAA implements EntryPoint, HistoryListener { private BBB bbb; private CCC ccc; private DDD ddd; private EEE eee; @Inject public AAA(BBB bbb, CCC ccc, DDD ddd, EEE eee) { this.bbb = bbb; this.ccc = ccc; this.ddd = ddd; this.eee = ee; } ……… } 结果对所有实例都为null ..我希望这种方式有效…… 我知道我可以做这样的事情 private final MyGinjector injector = […]