小编Joh*_*ent的帖子

Spring Boot Autowired null

我在Spring Boot项目中有几个类,有些使用@Autowired,有些则没有.我的代码如下:

Application.java(@Autowired works):

package com.example.myproject;

@ComponentScan(basePackages = {"com.example.myproject"})
@Configuration
@EnableAutoConfiguration
@EnableJpaRepositories(basePackages = "com.example.myproject.repository")
@PropertySource({"classpath:db.properties", "classpath:soap.properties"})
public class Application {

@Autowired
private Environment environment;

public static void main(String[] args) {
    SpringApplication.run(Application.class);
}

@Bean
public SOAPConfiguration soapConfiguration() {
    SOAPConfiguration SOAPConfiguration = new SOAPConfiguration();
    SOAPConfiguration.setUsername(environment.getProperty("SOAP.username"));
    SOAPConfiguration.setPassword(environment.getProperty("SOAP.password"));
    SOAPConfiguration.setUrl(environment.getProperty("SOAP.root"));
    return SOAPConfiguration;
}
Run Code Online (Sandbox Code Playgroud)

HomeController(@Autowired works):

package com.example.myproject.controller;

@Controller
class HomeController {

    @Resource
    MyRepository myRepository;
Run Code Online (Sandbox Code Playgroud)

MyService(@Autowired不起作用):

package com.example.myproject.service;

@Service
public class MyServiceImpl implements MyService {

    @Autowired
    public SOAPConfiguration soapConfiguration; // is null

    private void init() { …
Run Code Online (Sandbox Code Playgroud)

java spring autowired spring-boot

7
推荐指数
1
解决办法
3万
查看次数

为什么@Singleton超过生产者中的@ApplicationScoped?

LoggerProducer.java是一个类,用于生成要在CDI bean中注入的Logger:

@Inject 
Logger LOG;
Run Code Online (Sandbox Code Playgroud)

完整代码:

import javax.ejb.Singleton;

/**
 * @author rveldpau
 */
@Singleton
public class LoggerProducer {

    private Map<String, Logger> loggers = new HashMap<>();

    @Produces
    public Logger getProducer(InjectionPoint ip) {
        String key = getKeyFromIp(ip);
        if (!loggers.containsKey(key)) {
            loggers.put(key, Logger.getLogger(key));
        }
        return loggers.get(key);
    }

    private String getKeyFromIp(InjectionPoint ip) {
        return ip.getMember().getDeclaringClass().getCanonicalName();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:可以@Singleton安全地变成@ApplicationScoped

我的意思是,为什么有人想在这里使用EJB?是否存在技术原因,因为不涉及任何交易,而且(AFAIK)无论如何都是线程安全的?

我显然是指javax.enterprise.context.ApplicationScoped,而不是javax.faces.bean.ApplicationScoped.

java thread-safety java-ee cdi ejb-3.1

6
推荐指数
1
解决办法
6664
查看次数

错误:Eclipse IDE 中的路径必须包含项目和资源名称:/&lt;jar 文件名&gt;

我正在向基于 Eclipse IDE 中的 Java Servlet 的 Web 服务器应用程序添加一个外部 jar 文件。但是,当我尝试添加该 jar 文件时,出现错误,因为"An internal error occurred during updating tag library index . Path Must Include project and resource name:/<jar file name>".请让我知道应用程序询问的路径,或者有任何特定目录我必须放置该 jar 文件或任何我必须更新 jar 文件位置的文件。谢谢

java eclipse servlets

5
推荐指数
1
解决办法
1万
查看次数

如何限制 Hibernate 实体图中使用的列

Hibernate 5.0.10 我定义了一个子图,如下所示:

@NamedSubgraph(name = "proc", attributeNodes = { @NamedAttributeNode("name"), @NamedAttributeNode("childTable1"), @NamedAttributeNode("childTable2"), @NamedAttributeNode("childTable3"), @NamedAttributeNode("childTable4") }),

问题是,当使用这个子图时,我会返回根表(名称存在的地方)中定义的所有属性,而不仅仅是我指定的子图属性。有没有办法告诉休眠不获取那些孩子?我的查询看起来就像select rec from records rec join rec.proc

java orm hibernate jpa entitygraph

5
推荐指数
1
解决办法
2067
查看次数

Arquillian vs EJB可嵌入容器

我试图理解EJBContainerJava EE 6为EJB模块和Arquillian的可嵌入单元测试提供的类之间的差异.

有没有一个很好的资源或有人可以帮我理解这个?当我可以使用可嵌入容器测试EJB时,是否值得编写Arquillian测试?

ejb-3.1 jboss-arquillian

3
推荐指数
1
解决办法
2192
查看次数

Maven 并发构建在 CI 服务器上

在我看来,我有一个有趣的案例。我们正在使用 maven,并且由于我们必须支持我们产品的多个版本,我们有时会使用 1.x 和 2.x 构建结构。当 1.x 和 2.x 并行构建时,有时我们会看到

安装工件元数据时出错:安装元数据时出错:更新组存储库元数据时出错

据我所知,本地用户存储库中的 maven-metadata-local.xml(对于工件,而不是工件的版本)正在由另一个 maven 进程同时写入。有没有办法让 maven 并行构建这两个,但等待文件上的写锁来更新它?

java maven jenkins

1
推荐指数
1
解决办法
2479
查看次数