小编Sky*_*lue的帖子

如何让 junit 测试在 springboot 应用程序中使用嵌入式 mongoDB?

我正在学习 springboot 并创建了一个简单的 springboot 应用程序。我希望它在运行单元测试时使用嵌入式 mongoDB,并为应用程序的其余部分使用外部 mongoDB。然而,它使用外部 mongoDB 进行单元测试而不是嵌入式测试。我的 POM 中有以下两个依赖项。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>de.flapdoodle.embed</groupId>
        <artifactId>de.flapdoodle.embed.mongo</artifactId>
        <scope>test</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我的属性文件有以下内容:

# MongoDB properties
mongo.db.name=person_testDB
mongo.db.url=localhost

#external Mongo url
spring.data.mongodb.uri=mongodb://localhost:27017/personDB
Run Code Online (Sandbox Code Playgroud)

我有一个包含嵌入式 MongoDB 配置的配置文件(MongoDBConfig.java):

@EnableMongoRepositories
public class MongoDBConfig {

@Value("${mongo.db.url}")
private String MONGO_DB_URL;

@Value("${mongo.db.name}")
private String MONGO_DB_NAME;

@Bean
public MongoTemplate mongoTemplate() {
    MongoClient mongoClient = new MongoClient(MONGO_DB_URL);
    MongoTemplate mongoTemplate = new MongoTemplate(mongoClient, MONGO_DB_NAME);
    return mongoTemplate;
 }
}
Run Code Online (Sandbox Code Playgroud)

以下是我的PersonService.java课:

@Service
public class PersonService  {
private static final Logger logger = …
Run Code Online (Sandbox Code Playgroud)

java junit spring mongodb spring-boot

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

如何在Spring boot中修改Mono对象的属性而不阻塞它

我最近开始使用反应式并创建了一个使用反应式流的简单应用程序。

我有以下代码,我通过 empID 获取员工。showExtraDetails仅当boolean 设置为时特别要求时,我才必须向我的 API 提供有关员工的额外详细信息true。如果它设置为 false,我必须在返回员工对象之前将额外的详细信息设置为 null。现在我在流上使用一个块来实现这一点。是否可以在不阻塞的情况下执行此操作,以便我的方法可以返回 Mono.

以下是我所做的代码。

public Employee getEmployee(String empID, boolean showExtraDetails) {


    Query query = new Query();

    query.addCriteria(Criteria.where("empID").is(empID));


    Employee employee = reactiveMongoTemplate.findOne(query, Employee.class, COLLECTION_NAME).block();


    if (employee != null) {

        logger.info("employee {} found", empID);
    }


    if (employee != null && !showExtraDetails) {

        employee.getDetails().setExtraDetails(null);
    }

    return employee;

}  
Run Code Online (Sandbox Code Playgroud)

java reactive-programming spring-boot spring-webflux

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

如何在 Alfresco 中创建搜索操作

我正在使用 Alfresco Enterprise 6.2。与实时搜索类似,我正在为文档库中的文件夹创建搜索操作。

我已更新 custom-actions.js 如下:

onActionSearch: function dla_onActionSearch(record){
        window.open(Alfresco.constants.PAGECONTEXT +'dp/ws/faceted-search?', "_self");       
}
Run Code Online (Sandbox Code Playgroud)

我还添加了文件夹范围,faceted-search.get.js如下所示。我对值进行了硬编码folder1只是为了测试它是否有效:

  scopeOptions.push({
  id: "FCTSRCH_SET_FOLDER_SCOPE",
  name: "alfresco/menus/AlfCheckableMenuItem",
  config: {
    label: "folder",
    value: "folder1",
    group: "SEARCHLIST_SCOPE",
    publishTopic: "ALF_SEARCHLIST_SCOPE_SELECTION",
    checked: false,
    hashName: "scope",
    publishPayload: {
     label: "folder",
     value: "folder1"
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

但是,它在执行搜索时不考虑文件夹范围。相反,它将“folder1”视为一个站点。如何在文件夹范围内正确执行搜索?

alfresco alfresco-share alfresco-webscripts alfresco-enterprise

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