我在基于 Spring 4 的项目中有一个抽象配置类。这个类看起来像这样:
public abstract class C<B> {
@Bean
public B b() {
return a();
}
protected abstract B a();
}
Run Code Online (Sandbox Code Playgroud)
当然,这不是实际的课程,但是让我们使用这个理论课程,它涉及真正有问题的课程中最重要的部分。
该类C由多个类扩展。例如:
@Configuration
public class E extends C<X> {
@Override
protected X a() { return new X(); }
}
@Configuration
public class F extends C<Y> {
@Override
protected Y a() { return new Y(); }
}
Run Code Online (Sandbox Code Playgroud)
目标是让每个扩展类按照预期的方式实例化和设置 bean,并将实例公开为 Spring bean,以便注入到其他 bean 中。换句话说,所有字段都应该在以下 bean 中注入一个 bean 实例:
@Component
public class Bean {
private final X x;
private …Run Code Online (Sandbox Code Playgroud) 我想将 spring-boot 2.2.2.RELEASE 应用程序部署到 Wildfly 18 应用程序服务器上。
pom.xml:
<dependencies>
<dependency>
<groupId>io.ropi.psf</groupId>
<artifactId>psf-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j18-impl</artifactId>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
当我尝试部署它时,出现以下错误:
2020-03-14 23:40:01,657 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.deployment.unit."psf-frontend-1.0-SNAPSHOT.war".component."org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultAsyncListener".WeldInstantiator: org.jboss.msc.service.StartException in service jboss.deployment.unit."psf-frontend-1.0-SNAPSHOT.war".component."org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultAsyncListener".WeldInstantiator: Failed to start service
at org.jboss.msc@1.4.11.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1731)
at org.jboss.msc@1.4.11.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
at org.jboss.threads@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1363)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.jboss.weld.resources.spi.ResourceLoadingException: Error while loading …Run Code Online (Sandbox Code Playgroud) 我有一个用例,我有一个数据源,比方说:每一秒,一个新的字符串来自该数据源.
我想创建一个管道,如果新的字符串到达,它将被推送到该管道进行处理.
我猜Java 8引入的Stream API可以做到这一点,因为它有方便的功能来处理任意集合的数据,但是我想跳过我收集数据的部分到一个单独的集合并派遣到达数据直接到我刚刚创建的Stream.
有没有办法做到这一点?
我有一个 Oracle 18.4.0 XE 数据库,我试图从 Hibernate 5.2.17 实现的 JPA 2.1 访问它。
我有ManyToMany两个实体之间的连接:
public class PermissionEntity implements Serializable {
private static final long serialVersionUID = -3862680194592486778L;
@Id
@GeneratedValue
private Long id;
@Column(unique = true)
private String permission;
@ManyToMany
private List<RoleEntity> roles;
}
Run Code Online (Sandbox Code Playgroud)
public class RoleEntity implements Serializable {
private static final long serialVersionUID = 8037069621015090165L;
@Column(unique = true)
private String name;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "roles")
private List<PermissionEntity> permissions;
}
Run Code Online (Sandbox Code Playgroud)
尝试在 …
java ×3
spring ×2
spring-boot ×2
hibernate ×1
java-8 ×1
java-stream ×1
oracle18c ×1
stream ×1
wildfly ×1
wildfly-18 ×1