通过 Pokedex com Spring WebFlux 的过程
设置项目
项目重要性
配置pom.xml
Subindo pela primeira vez a applicação
Criando um 模型
Criando um 存储库
MongoDB 的初始版本
创建或控制器
测试应用程序
测试活动流
无需 Heroku 即可部署
结论
您可以使用 Spring Webflux 来创建、读取、更新和删除应用程序,并使用 MongoDB 银行和 Heroku 服务!
项目存储库:https://bit.ly/pokedex-reativo
最后一个教程,您可以使用自己的图鉴,了解它,删除自己的神奇宝贝,并在自己的存储库中删除这些神奇宝贝,并使用事件流、端点功能来简单地使用事件流,然后将项目放在一起 文件夹!
库尔蒂乌? Então vamos lá...(ɔ◔‿◔)ɔ
设置项目
安装前请注意:
- JDK 8 或 9
- Uma IDE 可以开发,您可以使用IntelliJ
- Ø Heroku CLI
- 拥有 Maven 3 环境配置变量
- 邮差
对于 Maven 3 来说,这是很重要的,Heroku CLI 是这样的...没有任何Clique aqui 和 Maven版本的安装,因此无法在应用程序中使用 ;)
Agora 可以访问Spring Initialzr网站,并根据以下情况进行选择:
- Spring 反应式 Web
- Spring Data 反应式 MongoDB
- 嵌入式 MongoDB 数据库
无组 usaremos:com.pokedex
无神器:reactiveweb
O 软件包名称是自动的!
Spring Initializr deve ficar assim 的用途如下:
马上,大家就来吧GENERATE CRTL+
,春天的初始化将通过 ZIP 进行,并且您可以通过本地化方式来获取额外的信息。
项目重要性
需要额外的资源或可以在 IDE 中使用,无需使用 IntelliJ 或 cliar导入项目
单击导入项目即可完成所有操作,将项目本地化为 Spring Initialzr 的项目,然后导入即可
我在两个选项中都提到了这一点:Maven 是一个重要的项目,它包含了模型中存在的所有信息,并在完成后将项目与周围环境的变化进行了 比较! :p
配置pom.xml
相关应用程序,请注意与嵌入的 mongo 相关的顺序,如前所述,seu pom.xml ficará da seguinte forma:<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
basta exlcuir o <scope>test</scope>
e colocar 依赖于 mongo 嵌入的徽标。
如果应用程序需要正确的顺序,则该应用程序依赖于 estiver depois igual estava,应用程序不支持 iria subir noservidor,pois a mesma não iria encontrar,sua depedendy deverá ficar da seguinte forma:<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
</dependency>
Subindo pela primeira vez a applicação
Vamos ver se nossa aplicação está subindo, no canal do youtube da womakerscode temos um video onde explicamos sobre o servidor Netty, caso tenha alguma dúvida so dar uma passadinha por lá .
在 8080 端口上安装服务器应用程序。
您可以使用“hello world womakerscode”padrão na classe main()
如果没有任何控制台,请System.out.println
选择最常用的控制台,并在应用程序的门户中设置相应的语言
Criando um 模型
要实现睾丸银行的快速应用,请执行以下操作,并使用 MongoDB 的方法。 Nele ficará salvos nossas variáveis。
软件包小组的成员是com.pokedex.reactiveweb > New > Package > com.pokedex.reactiveweb。型号> 输入
Dentro dele crie uma nova classe com o nome Pokemon , dentro dessa classe será colocado as informações os pokemons terão, tais como Id, Nome, Poder etc... Dentro dessa classe coloque:
基本的getter 和 setters、boolean equals、hashcode、 eo toString、 você pode fazer 都是如此 apertando ALT + INSERT
> getter/ setter > equals() hashcode() > toString() > OverrideMethods > Constructor
接下来,我们将在 IntelliJ 或 IDE 中使用您所需要的方法!
Criando um 存储库
没有存储库是持久存在的,在com.pokedex.reactiveweb > New > Package > com.pokedex.reactiveweb 中没有任何库。存储库> 输入
提供PokemonRepository名称和界面的软件包
接口是类开发实现中具体使用的抽象技巧和补充技巧
Dentro nessa 界面颜色或顺序:
Spring Data 可以帮助您轻松地进行生活、发送信息,这是一个与 Pokemon String 对象相关的快速接口。
您可以使用ReactiveMongoRepository来编辑全景图,使用的方法有:flux、findByID、finalAll 等。
Agora sim podemos Inicializar nosso banco de bados (͠≖ ʖ͠≖)👌
MongoDB 的初始版本
使用 Mongo Embeded、发送 assim 等,不需要使用其他方法,也可以本地使用。
Na classe Main() criaremos uma chamada do nosso banco de bados, usando o CommandLiner que é uma interface funcional que recebe variável de argumentos em cadeia.. o mesmo deve estar anotado com o @Bean para o spring boot entender que aquilo deve ser processado, enfim, o resultado deve ser o seguinte código:
Aqui vemos algo de differenterente, nao estamos trazendo os métodos padrões (findAll, findById etc) por que estamos trabalhando com um banco de bados embutido, mas caso você queira usar um Mongo Atlas por example, o ReactiveMongoOperations gera essa série de pra você 方法。
Nesse código o .flatMap Consulta o findAll e imprime os bados, eo thenMany faz isso também só que de forma assíncrona, eo subscribe imprime na tela também
Agora se a executarmos veremos que o banco de bados subiu, e os bados inseridos serãomostrados na tela, você terá algo assim:
创建或控制器
控制器是一个控制器类,可以执行、更新、删除和闲置神奇宝贝的方法。
com.pokedex.reactiveweb > New > Package > com.pokedex.reactiveweb 中的criá-lo clique com 。控制器> 输入
E repetir esse mesmo processo para criar uma classe
Agora bora criar os métodos que já estamos chegando no resultado Final (•◡•) /
搜寻所有口袋妖怪
Agora você deve criar uma instância e dentro dela terá o método para trazer todos os pokémons, ficará assim:
id 的 Bucando 或 Pokémon
Para Buscar por id, colocaque o método dentro da instância, igual o anterior:
什么是单只神奇宝贝的方法?这是重要的 1 id seja chamado,e quando esse id não for encontrado,trazemos uma reposta HTTP。
如果 defaultIfEmpty 是空的,则可以使用此命令,然后返回NOTFOUND状态
使用 .map() 可以返回一个功能并捕获结果并捕获编辑器 Mono,找到 findById 来返回 Mono
克兰多和萨尔万多是新的神奇宝贝
Para criar um novo e salvar pokémon basta digitalar o código abaixo
Retornará um Mono por que é o que será retornado no repositório。
神奇宝贝更新
Agora vamos 组合了所有 Pokémon 的声音。 Para atualizarmos um pokémon receberemos um id, e uma instância do pokémon com novos valores a serem atualizados.
Vamos começar procurando por id, e se ele for encontrado será atualizado ao contrário será recebido um status NOTFOUND
第二部分代码操作员地图将进行转换,默认情况下为 Mono vazio for retornado com defaultEmpty ele retornará um status NOTOFUND, esse bloco de código poderia também ser feito com if/ else, mas o jeito que fizemos foi do modo declarativo
不包括宝可梦
之前的方法是,删除所有神奇宝贝的方法:
删除 TODOS os Pokémons 的方法
Prontinho、集市中的 CRUD 完整功能、集市中的事件流(部分合法 o/)
Criando um 事件流ᕙ(`▿´)ᕗ
没有控制器的情况下,事件的处理方法是事件属性的类,如果是包模型,则可以使用PokemonEvent类,然后进行以下操作:
`
public class PokemonEvent {
private Long eventId;
private String eventType;
}
`
Pokémon 包中的类包模型标志 acima,因此可以指定getter 和 setters、boolean equals、hashcode、toString、você pode fazer tudo isso apertando ALT + INSERT
> getter/setter > equals() hashcode() > toString() > OverrideMethods > Constructor
showww,在PokemonController类中进行操作,事件的处理方法如下:
`
@GetMapping(value = "/events", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<PokemonEvent> getPokemonEvents() {
return Flux.interval(Duration.ofSeconds(5))
.map(val ->
new PokemonEvent(val, "Product Event")
);
}
`
O 间隔 traz 或 tanto de segundos que o meu eventto Serámostrado, nesse caso de 5 em 5 segundos um eventto novo é gerado!
Estamos quase acabando, agora só falta testar nossos 端点 (͡~ ͜ʖ ͡°)
测试应用程序
测试应用程序时,请先执行以下操作,然后使用 main() 方法和启动命令,然后在没有控制台的情况下进行操作,然后再进行操作:
Agora bora pro postman testar 操作系统端点
搜寻所有宝可梦
最初的方法是通过 GET 进行测试,然后将所有 Pokémons 进行射击,没有邮递员进行射击,结果如下:
如果您使用 GET 来操作,则可以对神奇宝贝进行“pegando”操作,可以测试以下内容:“PUT”、“POST”...等,然后再进行操作,然后再进行操作
按 ID 搜寻 Pokémon
Para Buscar por id, basta copiar e colar um id que foi gerado na resposta do GET
成为新宝可梦
没有POST请求的必要条件,没有选择原始的正文> JSON格式为 json,数字:
`
{
"nome": "IbySaur",
"categoria": "Semente",
"habilidades": "OverGrow",
"peso": 13.0
}
`
现在,请发送并发送神奇宝贝齐射!
Deverá retornar um STATUS 201 * o quemostra que foi criado com êxito, para ter certeza, vamos voltar no GET , copiar e colar o id gerado, que elemostrá nosso pokémon criado..
O id não precisa colocar pois ele é geradoautomaticamente pelo MongoDB
删除 Pokémon
Agora vamos 删除方法删除全部和删除,发送邮件至邮递员 vamos mudar 要求删除
Vejam que eu coloco o id de algum pokémon que eu queira excluir
Se eu tirar esse id ele vai exlcuir TODOS OS POKÉMONS
测试活动流
Vimos que nosso CRUD está no esquema já, ou seja, está funcionando bem lindão...
Com nossa aplicação iniciada ainda, vamos testar o events Stream, para isso vá até um browser se sua preência e digitale:
http://localhost:8080/pokemons/events
神奇宝贝第 5 回合将不再发生神奇宝贝事件
如果没有任何事件流允许,则需要在前面的终点处进行操作,这是 Spring Webflux 的主题。
无需 Heroku 即可部署
快来听听我的应用程序吧,你会发现什么?
相关应用、pom.xml 中的插件说明:
`
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>com.heroku.sdk</groupId>
<artifactId>heroku-maven-plugin</artifactId>
<version>3.0.2</version>
</plugin>
</plugins>
</build>
</project>
`
Agora vá até a Pasta da sua aplicação, usando umterminal (eu vou usar o gitbash) , e digitale heroku login
, para acessar sua conta no heroku
Irá aparecer uma janela assim pra você:
登录后,您可以通过 com 或 Heroku 登录!
Depois que terminar de carregar, iremos criar um app para hospedar nossa aplicação, faremos isso com o comando heroku create
Eestamos quase lá,seu app foi criado,没有终端 ele vai te gerar um link e essa mensagem:
我们很快就能部署
如果您需要独立应用(例如,需要处理程序),请使用以下命令来植入植入物: 重新启动并 mvn clean heroku:deploy
验证操作系统日志...
PARABÉNSSS sua aplicação subiuuu

结论
Spring Webflux 是 SpringBoot 的一个模块,可以通过 CRUD 操作来处理事件的顺序,并且永远不会使用应用程序,这取决于实际情况和实际情况
...
您是否知道,对于任何应用功能,是否存在任何问题?与 GitHub 兼容,并且可以通过 github 来实现,并且可以使用 possam aprender assim como você! ʕ•́ᴥ•̀ʔっ
可以从 Github 上下载应用程序 ->
https://bit.ly/pokedex-reativo
从 github 上下载 <3
参考:
Heroku DevCenter
Canal do Youtube da Michelli Brito
Nos vemos na próxima, dêem likesss and compartilhem, e vejam os outros artigos da womakerscode quem quiser me seguir nas redes socias @anabneri #tamojunto
文章来源:https://dev.to/womakerscode/criando-seu-pokedex-com-spring-webflux-mongodb-deploy-no-heroku-21f5