![](/img/trans.png)
[英]Docker container connection to database (image with a Java Spring boot app)
[英]Connect docker container to spring boot app
我正在按照教程创建一个温和的 spring 引导应用程序。 我正在运行 IntelliJ 社区版。 我想将运行 Postgresql 的 docker 容器连接到应用程序。 这个想法是有一个人数据库,其中有两个表,一个名字和一个 ID。 我想将 person 数据库与 spring 启动应用程序连接起来,这样我就可以对其运行查询。 https://youtu.be/vtPkZShrvXQ?t=4309
我在终端中运行了 docker-compose 来创建容器,然后在 IntelliJ 上安装了 docker 扩展。 我是新手,所以请耐心等待。 如果有更好的方法,我愿意重做。 我附上了我的 controller 的源代码、教程的链接、在 IntelliJ 中运行的 docker 容器的图像,以及我的 docker-compose.yml 文件的图像。
@RequestMapping("api/v1/person")
@RestController
public class PersonController {
private final PersonService personService;
@Autowired
public PersonController(PersonService personService) {
this.personService = personService;
}
@PostMapping
public void addPerson(@RequestBody Person person){
personService.addPerson(person);
}
@GetMapping
public List<Person> getAllPeople(){
return personService.getAllPeople();
}
@GetMapping(path="/{id}")
public Person getPersonById(@PathVariable("id") UUID id){
return personService.getPersonById(id)
.orElse(null);
}
@DeleteMapping(path="{id}")
public void deletePerson(@PathVariable("id") UUID id){
personService.deletePerson(id);
}
@PutMapping(path="{id}")
public void updatePerson(@PathVariable("id") UUID id, @RequestBody Person personToUpdate){
personService.updatePerson(id,personToUpdate);
}
}
您必须使用 Spring 数据启动器和 postgres sql 驱动程序
添加以下依赖项:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
应用程序属性:
## default connection pool
spring.datasource.hikari.connectionTimeout=20000
spring.datasource.hikari.maximumPoolSize=5
## PostgreSQL
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres-spring
spring.datasource.password=password
#drop n create table again, good for testing, comment this in production
spring.jpa.hibernate.ddl-auto=create
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.