Tag: 注入

Guice:注入一个字符串的ArrayList

我试图在Guice的帮助下注入String的ArrayList 。 我想显示一个带有许多RadioButtons的面板(例如),用户可以选择一些要激活的服务。 选择后,我想获取所选服务的所有名称并将其添加到列表中,并将此列表注入负责创建服务的经理。 这是一个例子: public class UIProviderModule extends ProviderServiceModule { private ArrayList requestedServices; public UIProviderModule(ArrayList requestedServices) { this.requestedServices = requestedServices; } @Override protected void configure() { bindConstant().annotatedWith(Names.named(Constants.REQ_SERVICES)).to(requestedServices); bind(IParser.class).to(UIParser.class); super.configure(); } } 我看过很多关于Multibindings和提供者的post,但我不明白这对我有什么帮助。 我只想检索名称,因为我不使用必须绑定到接口的类。 我错过了什么吗? 注意:我知道这可能不是使用Guice的好方法,因为我将列表绑定到Module 。

@ManagedProperty的CDI替换

我对CDI和JSF都很陌生,我正在尝试将Richfaces 4展示的一些代码转换为使用CDI而不是JSF注释。 我知道我可以使用@Named替换@MangedBean和@Inject来替换@ManagedProperty。 但我遇到了一些麻烦。 我正在尝试专门转换Richfaces Tree示例。 我做了以下更改,我知道这是不正确所以请不要使用此: //@ManagedBean //@ViewScoped @Named @SessionScoped public class TreeBean implements Serializable { private static final long serialVersionUID = 1L; // @ManagedProperty(value = “#{cdsParser.cdsList}”) // private List cdXmlDescriptors; @Inject private Instance cdXmlDescriptors; // I also Tried : // @Inject // private CDParser cdsParser; // private List cdXmlDescriptors = cdsParser.getCdsList(); …….. 然后我添加了(我不确定这是否需要): […]

Java EE 6 @Inject懒惰?

我正在进行一些重构和审查我们正在开发的应用程序。 在这样做时我发现注入了更多的豆子,我认为以懒惰的方式装载它们会更适合它们的目的。 我正在使用Java EE 6,并且倾向于使用比EJB注入更多的CDI。 所以问题是是否可以懒惰地注入豆类,如果是这样,你怎么能这样做?

使用Spring将文本文件直接注入String

所以我有这个 @Value(“classpath:choice-test.html”) private Resource sampleHtml; private String sampleHtmlData; @Before public void readFile() throws IOException { sampleHtmlData = IOUtils.toString(sampleHtml.getInputStream()); } 我想知道的是,是否可以不使用readFile()方法并将sampleHtmlData注入文件的内容。 如果不是,我只需要忍受这个,但这将是一个很好的捷径。

Google Guice桌面应用程序 – 如何使其工作?

我在我的网络应用程序中使用Guice没有问题,我想在桌面应用程序中使用它。 我当然缺少一件事 – 某种方式告诉我的应用程序如何绑定所有内容并知道什么是什么。 在Web应用程序中,我在Application类中声明了这一点,我应该如何在桌面应用程序中执行此操作? 这是我正在使用的相关代码: public class GuiceModule extends AbstractModule { @Override protected void configure() { // Enable per-request-thread PersistenceManager injection. install(new PersistenceManagerFilter.GuiceModule()); // Business object bindings go here. bind(ProjectQueries.class).to(JdoProjectQueries.class); bind(new TypeLiteral<Repository>() { }).to(JdoProjectRepository.class); } 我的主要课程: @Inject public Repository projectRepo; public void createNewProject() { … projectRepo.persist(newProject); } 我当然正在使用projectRepo.persist(newProject); 那么,我还需要做些什么才能让它发挥作用? 编辑: 好的,那个部分现在正常工作,谢谢:)似乎我需要做更多的事情来让持久性工作那样。 我现在在这里接受NPE: public void […]

Guice基于注释值注入

我想使用goolge / guice根据我提供的类注释注入一个值。 AutoConfig注释 @BindingAnnotation @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.PARAMETER, ElementType.FIELD }) public @interface AutoConfig { // default null not possible Class<? extends Provider<? extends ConfigLoader>> provider() default XMLAutoConfigProvider.class; } 这是我的注释,它允许配置应该用于带注释字段的配置类型。 用例: @AutoConfig() ConfigLoader defaultConfig; @AutoConfig(provider = JsonConfigProvider) ConfigLoader jsonConfig; 我想要两个配置,一个默认/ xml一个和一个json。 它们可能永远不会同时出现在同一个类中。 但我不知道何时使用这一个或另一个。 我在类中使用了这个方法,因为它们是由一些依赖项/库提供的,这个注释将用于一些(可插入的)子模块。 MyGuiceModule public class MyGuiceModule extends AbstractModule { @Override protected void configure() { […]

使用GDB更改JVM中的变量值

目前我有一个简单的Java程序: public class Test { public static void main(String[] args) { boolean test = true; while (test) { System.out.println(“Hello World”); try { Thread.sleep(1000); } catch (Exception e) {} } System.out.println(“Bye-bye”); } } 它每秒打印“Hello World”。 我想使用gdb附加到进程并制作一个内存补丁,以打印“Bye-bye”来阻止它。 我知道GDB可以从其控制台获取创建的VM(JNI_GetCreatedVMs),也可以通过GetEnv的API获得env对象。 如何在JVM中找到test变量地址并将其设置为false(这是可选的)以使程序正常退出? 不确定像AttachCurrentThread这样的API,像HotSpotVirtualMachine这样的类,像jmap或jstack这样的工具会有帮助吗? 并且没有调试选项,假设使用java -cp . Test在生产中运行简单程序java -cp . Test java -cp . Test 。 提前感谢任何指导。 🙂 附加信息(跟踪状态) jmap -dump:file=hex […]

如何在yml中获取我的配置值 – 使用dropwizard(microservice)Jersey DI @Injection?

这是我的代码片段。 这是我的yml文件: productionServer: host: production-server.amazonaws.com publicIp: xx.xx.xx.xx privateIp: xx.xx.xx.xx userName: xx.xx.xx.xx password: xx.xx.xx.xx remoteFilePath: fake/path/ fileName: test.txt privateKey: private-public-key.ppk server: applicationConnectors: – type: http port: 8080 – type: https port: 8443 keyStorePath: key.keystore keyStorePassword: password validateCerts: false adminConnectors: – type: http port: 8081 – type: https port: 8444 keyStorePath: key.keystore keyStorePassword: password validateCerts: false MyConfiguration类: […]