zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

深入实践Spring Boot2.3.3 文档持久化

2023-03-14 10:14:59 时间

2.3.3 文档持久化

MongoDB也有像使用JPA那样的资源库,如代码清单2-16所示,为用户文档创建了一个Repository接口,继承于MongoRepository,实现了文档持久化。

代码清单2-16 用户文档持久化

public interface UserRepository extends MongoRepository<User, String> {

    User findByUsername(String username);

}

MongoRepository的继承关系如图2-4所示,看起来跟JPA的资源库的继承关系没有什么两样,它也包含访问数据库的丰富功能。

代码清单2-17是用在测试中的使用MongoDB的一个配置类定义,其中@PropertySource指定读取数据库配置文件的位置和名称,@EnableMongoRepositories启用资源库并设定定义资源库接口放置的位置,这里使用环境变量Environment来读取配置文件的一些数据库配置参数,然后使用一个数据库客户端,连接MongoDB服务器。

代码清单2-17 TestDataSourceConfig配置类

@Configuration

@EnableMongoRepositories(basePackages = "dbdemo.mongo.repositories")

@PropertySource("classpath:test.properties")

public class TestDataSourceConfig extends AbstractMongoConfiguration {

 

    @Autowired private Environment env;

 

    @Override

    public String getDatabaseName(){

        return env.getRequiredProperty("mongo.name");

    }

 

    @Override

    @Bean

    public Mongo mongo() throws Exception {

        ServerAddress serverAddress = new ServerAddress(env.getRequiredProperty

("mongo.host"));

        List<MongoCredential> credentials = new ArrayList<>();

        return new MongoClient(serverAddress, credentials);

    }

 

}