繁体   English   中英

将 docker 容器连接到 spring 启动应用程序

[英]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);
    }
}

docker容器运行 码头工人-compose.yml

您必须使用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM