小编Lás*_*zki的帖子

@Bean:子类中唯一的bean名称

我在基于 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)

java spring spring-boot

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

如果我不制作反应式 Web 应用程序,为什么需要 org.reactivestreams:reactive-streams?

我想将 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)

wildfly spring-boot wildfly-18

5
推荐指数
0
解决办法
1076
查看次数

Java Streams:通过现有流放置新元素

我有一个用例,我有一个数据源,比方说:每一秒,一个新的字符串来自该数据源.

我想创建一个管道,如果新的字符串到达​​,它将被推送到该管道进行处理.

我猜Java 8引入的Stream API可以做到这一点,因为它有方便的功能来处理任意集合的数据,但是我想跳过我收集数据的部分到一个单独的集合并派遣到达数据直接到我刚刚创建的Stream.

有没有办法做到这一点?

java stream java-8 java-stream

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

Hibernate 5.2.17:ORA-01797:此运算符后必须跟 ANY 或 ALL

我有一个 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 spring hibernate spring-data-jpa oracle18c

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