问题一 后盾我的项目无奈新建java类并且注解为灰色:

当我像平常一样通过作为我的项目关上pom.xml时发现关上后只显示这些文件

于是我尝试间接关上我的项目文件夹,关上之后发现所有注解都是灰色的

并且在新建里没有新建java类这一项。
然而通过运行mvn spring-boot:run却发现可能失常运行。
在网上查找材料发现这和maven无关。
并且发现通过这样关上右侧没有maven这一栏,这也就阐明须要增加maven我的项目,在网上搜寻相应办法后只需全局搜寻maven并将pom.xml作为maven我的项目增加即可。

然而对于为什么会触发这样的问题,在其余我的项目中依照之前的打开方式就没有问题,还没有找到很好的解释。

问题二 Docker 装置 MongoDB:

抉择装置最新版本

docker pull mongo:latest

查看是否曾经装置mongo

装置完之后能够应用此命令来运行mongo容器
docker run -itd --name mongo -p 27017:27017 mongo --auth

-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。内部能够间接通过 宿主机 ip:27017 拜访到 mongo 的服务。--auth:须要明码能力拜访容器服务。

如果呈现上面报错则证实该容器曾经存在,须要更换名称或是间接运行该容器

docker: Error response from daemon: Conflict. The container name "/mongo" is already in use by container "5ce065ddce059a1d022b386c6238486e9d7e943fed58794a1f44d0cefb0efd62". You have to remove (or rename) that container to be able to reuse that name.

See 'docker run --help'.
应用如下操作可查看所有docker容器

docker ps -a

应用上面命令可删除容器

docker rm NAME/CONTAINER ID

运行之后能够通过上面命令来查看容器是否在运行

接着应用以下命令增加用户和设置明码,并且尝试连贯。

docker exec -it mongo mongo admindb.createUser({ user:'admin',pwd:'000000',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});db.auth('admin', '000000')

此时再拜访本机的27017端口如果显示如下则表明胜利启动。

问题三 MongoDB 连贯springboot

咱们之前设定的用户即admin代表管理员用户,而咱们要与springboot进行对接须要建设新的数据库和用户。

咱们进入mongodb中后先建设数据库

use appdb

而后再创立用于治理此数据库的用户,可看到人哦了为dboWner,所治理的数据库为刚刚建设的appdb

db.createUser({user:'liming', pwd:'000000', roles:[ {role:'dbOwner', db:'appdb'} ]})

配置对应依赖项:

    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-data-mongodb</artifactId>    </dependency>

而后就是对 application.yml 进行配置

spring.data.mongodb.uri=mongodb://liming:000000@127.0.0.1:27017/appdb

即mongodb://用户名:明码@ip,因为是本地故为127.0.0.1:27017/数据库名称

留神,此时用到的用户名和明码是治理该数据库的用户,不是一开始建设的管理员用户。

为了验证是否配置胜利进行如下测试:
Dao:

@Repositorypublic interface TestReponsitory extends MongoRepository<TestEntity,Integer> {}

Entity:

public class TestEntity {  private String testName;  private Integer testInt;  public String getTestName() {    return testName;  }  public void setTestName(String testName) {    this.testName = testName;  }  public Integer getTestInt() {    return testInt;  }  public void setTestInt(Integer testInt) {    this.testInt = testInt;  }}

Test:

@SpringBootTestclass TestReponsitoryTest {  @Autowired  private TestReponsitory testReponsitory;  @Test  void test() {    TestEntity test = new TestEntity();    test.setTestInt(1);    test.setTestName("testName");    List<TestEntity> all = testReponsitory.findAll();    System.out.println(all);  }}

运行后查问结果显示与咱们插入的数据雷同

咱们还能够用以下命令来查看咱们所存储的数据