小编App*_*ler的帖子

通过InjectMocks间谍注入对象

我需要在具有@Autowired Logger实现的类上运行一系列单元测试。实现的基本思想是:

@Mock Logger logger;
@InjectMocks
TestedClass tested;
Run Code Online (Sandbox Code Playgroud)

但我想保存日志输出功能。

Mockito lib是否允许使用@InjectMock注入对象?我看过@Spy批注的示例,但是当我尝试使用它时,我总是收到NullPointerException。我知道我总是可以直接使用反射,但是这样做的目的是避免使用此类代码。

java mockito spy

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

是否可以使用 Spring 创建控制台应用程序?

目前正在研究这个课题。是否可以利用 Spring 的好处来形成 Console 应用程序?我的意思是,使用范围、自动装配等(找到了一堆基本的“设置上下文、初始化和运行”的例子,但仅此而已)?

找不到有关此主题的任何教程或有用信息。

java spring console-application

5
推荐指数
2
解决办法
2446
查看次数

MapStruct @MappingTarget 生成一个空方法

有一个由 Lombok 形成的目标类型:

@Data
@Builder
class Target {
   private final String a;
}
Run Code Online (Sandbox Code Playgroud)

并有一个 DTO:

@Value
@Builder
class DTO {
   private final String a;
}
Run Code Online (Sandbox Code Playgroud)

映射器:

@Mapper(componentModel = "spring")
interface Mapper {
    void update(DTO dto, @MappingTarget Target target);
}
Run Code Online (Sandbox Code Playgroud)

但是当我编译时(看到一些与 JDK 11 相关的东西,是的,在我的例子中是 11),编译后的方法是空的:

public void update(DTO source, Target target) {
   if (source == null) {
       return;
   }
}
Run Code Online (Sandbox Code Playgroud)

并且这只与MappingTarget相关。使用“createFromDTO”的常规映射方法可以正常工作。

地图结构1.3.0

java lombok mapstruct

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

春季 JPA。如何从 @Query(nativeQuery = true) 映射到 POJO

有疑问,就这样吧

select 1 "colName"
Run Code Online (Sandbox Code Playgroud)

我想使用 Spring Data JPA 将结果映射到 POJO 类型。

因此,图片是:

public interface MyAwesomeSuperInterface extends CrudRepository {
    @Query(value = "select 1 \"colName\"", nativeQuery = true)
    List<POJO> something();
}
Run Code Online (Sandbox Code Playgroud)

问题是如何将其映射到POJO.class

按照我认为我会得到的常见建议:

  1. 不,我不想将其更改为 JSQL 并执行“新 POJO”。
  2. 为什么?因为我有一个复杂的sql查询,它无法反映到JSQL中。
  3. 不,我不会提出疑问。我只想知道如何使用将上面的示例映射到 POJO Spring Data。谢谢

java spring spring-data-jpa

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

春季引导。如何利用原型范围?

我试图找到一种在Spring启动中创建优美的Runnable bean的方法。该应用程序的重点是提供一项服务,该服务将接收一些数据并启动受监视的外部过程。

在之前的尝试中,我只是形成一个常规new MyRunnable()并将其传递给执行服务。现在,我正在考虑如何在Spring环境中正确使用并使用@Scope("prototype")

我确实找到了使用的示例,ApplicationContext.getBean(...)以及为什么Spring的ApplicationContext.getBean被认为是不好的更好的方法,但我仍然无法正确理解如何new MyRunnable()根据一项服务来实际调用,这将遵循以下简单思想:

class MyService {
  public void triggerNewExternalTask() {
       ....
       executionService.run(new MyRunnable());
Run Code Online (Sandbox Code Playgroud)

java spring runnable spring-boot

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