<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5899469145641542907</id><updated>2025-08-10T01:44:52.228+01:00</updated><category term="Eventos"/><category term="Java"/><category term="Spring Boot"/><category term="Noticias"/><category term="Java EE"/><category term="Android"/><category term="Article"/><category term="Revista Programar"/><category term="NetPonto"/><category term="Maven"/><category term="SQLPort"/><category term="Hibernate"/><category term="Spring"/><category term="Angular"/><category term="Docker"/><category term="JPA"/><category term="Eclipse"/><category term="Humor Tech"/><category term="PHP"/><category term="Spring Framework"/><category term="CDI"/><category term="JQuery"/><category term="JSF"/><category term="PT.JUG"/><category term="Tutorials"/><category term="App"/><category term="Authentication"/><category term="Coimbra"/><category term="EJB"/><category term="HTML"/><category term="Ionic"/><category term="JDBC"/><category term="MySQL"/><category term="CSS"/><category term="Comunidade Portuguesa de SharePoint"/><category term="Google"/><category term="JWT"/><category term="Java 8"/><category term="JavaScript"/><category term="Programação"/><category term="Video"/><category term="HTML5"/><category term="Internet"/><category term="Microservices"/><category term="Rest API"/><category term="Apache Tomcat"/><category term="Books"/><category term="Frameworks"/><category term="Google doodle"/><category term="JAX-RS"/><category term="JMS"/><category term="Microsoft"/><category term="Microsoft Tech-Days"/><category term="Oracle"/><category term="Spring Security"/><category term="Apache TomEE"/><category term="Application"/><category term="Batch"/><category term="Blockchain"/><category term="Cloud"/><category term="Dart"/><category term="Databases"/><category term="IPv6"/><category term="JUnit"/><category term="Log4J"/><category term="MongoDB"/><category term="RabbitMQ"/><category term="SAPO Codebits"/><category term="SQL"/><category term="SQL Server"/><category term="SQLite"/><category term="Spring Batch"/><category term="Spring MVC"/><category term="Token"/><category term="Web"/><category term="Websockets"/><category term="WildFly"/><category term="XML"/><category term="ZIP"/><category term="Android Studio"/><category term="Arquillian"/><category term="Bean Validation"/><category term="CSS3"/><category term="Collection"/><category term="CompletableFuture"/><category term="Comunidade PT HTML5"/><category term="Development"/><category term="Dockerizing"/><category term="Download"/><category term="Driver"/><category term="ENEI"/><category term="EST"/><category term="Editor"/><category term="Email"/><category term="Ethereum"/><category term="Eureka"/><category term="FileInputStream"/><category term="FileOutputStream"/><category term="Firebase"/><category term="Infotec"/><category term="Install"/><category term="JDK7"/><category term="JSF 2.2"/><category term="JakartaEE"/><category term="Kafka"/><category term="Kubernetes"/><category term="Lambdas"/><category term="Linux"/><category term="Logback"/><category term="Lombok"/><category term="MSDN Magazine"/><category term="MicroProfile"/><category term="Microservice"/><category term="NetBeans"/><category term="NoSQL"/><category term="PDF"/><category term="Photoshop"/><category term="Poliempreende"/><category term="PostgreSQL"/><category term="Postman"/><category term="Programming language"/><category term="Project"/><category term="Python"/><category term="Questions"/><category term="RESTful"/><category term="Run4All"/><category term="SLF4J"/><category term="Scala"/><category term="Servlet"/><category term="Spring Cloud"/><category term="Spring Roo"/><category term="Starter"/><category term="Swing"/><category term="Trabalhos Académicos"/><category term="Usabilidade"/><category term="WebDesign"/><category term="Windows Phone"/><category term="WorkManager"/><category term="XLParty"/><category term="eBooks"/><category term="iOs"/><category term="internet explorer"/><category term="AI"/><category term="APK"/><category term="APN"/><category term="ASCII"/><category term="ASP.NET"/><category term="Abstract Classes"/><category term="ActiveMQ"/><category term="Addressable Dialogs"/><category term="Adobe"/><category term="Adobe CS5"/><category term="After Effects"/><category term="Agent Ransack"/><category term="Agile"/><category term="AngularJS"/><category term="Aniversário"/><category term="Annotations"/><category term="Antivirus"/><category term="Apache ActiveMQ"/><category term="Apache CXF"/><category term="Apache Camel"/><category term="Apache Kafka"/><category term="Apple"/><category term="Artigos"/><category term="Asynchronous"/><category term="Auth"/><category term="AuthSession"/><category term="Authorization"/><category term="Avast"/><category term="Backgrounds"/><category term="Balsamiq Mockups"/><category term="Barcode"/><category term="BareTail"/><category term="Best"/><category term="Boost up"/><category term="Browsers"/><category term="CDI Events"/><category term="CSS Reset"/><category term="CachedRowSet"/><category term="Caixa Prioritária"/><category term="Calendário"/><category term="Callback"/><category term="Caminhada"/><category term="Castelo Branco"/><category term="Cebit"/><category term="Cerified"/><category term="Certificação"/><category term="Chat"/><category term="ChatGPT"/><category term="ClassLoader"/><category term="Cloud Computing"/><category term="Cloud Foundry"/><category term="Cloud9 IDE"/><category term="Code"/><category term="Code School"/><category term="Config"/><category term="Contactos"/><category term="Controller"/><category term="Course"/><category term="Courses"/><category term="Cycling"/><category term="DAO"/><category term="DTO"/><category term="DataSource"/><category term="Db2"/><category term="Decryption"/><category term="Dependency"/><category term="Derby"/><category term="DevelopeFAQ"/><category term="Dia do programador"/><category term="Digital"/><category term="Domain"/><category term="Dot"/><category term="E-Farsas"/><category term="EclipseLink"/><category term="Editors"/><category term="Emulator"/><category term="Encryption"/><category term="Error"/><category term="Estrada"/><category term="Europrix"/><category term="Events"/><category term="Exame"/><category term="Example"/><category term="Excel"/><category term="Exception"/><category term="ExecutorService"/><category term="Extensões"/><category term="Extensões de vídeo"/><category term="Faster"/><category term="Features"/><category term="Feign Reactive"/><category term="Fennec"/><category term="File"/><category term="File Explorer"/><category term="FileReader"/><category term="FileWriter"/><category term="Firebase Cloud Messaging"/><category term="Firebird"/><category term="Flutter"/><category term="Folder"/><category term="Forms. Acessibilidade"/><category term="Fragment"/><category term="Free"/><category term="Free Ebook"/><category term="Freelancer"/><category term="Fun"/><category term="Functional Programming"/><category term="GPS"/><category term="Generic"/><category term="Gmail"/><category term="Google Chrome"/><category term="Grails"/><category term="Groovy"/><category term="H2"/><category term="H2 Database"/><category term="HAXM"/><category term="HSQLDB"/><category term="HTTP"/><category term="Hacker Monthly"/><category term="Hamcrest"/><category term="Hello World"/><category term="History of Programming"/><category term="Hobbie"/><category term="Honeycomb"/><category term="IBM"/><category term="IPv4"/><category term="InfoQ"/><category term="Informix"/><category term="Informática"/><category term="InputStream"/><category term="Intel"/><category term="Intel Virtualization"/><category term="Interceptors"/><category term="JAX Magazine"/><category term="JAXenter"/><category term="JBoss"/><category term="JBoss Forge"/><category term="JDK 8"/><category term="JEE"/><category term="JMockit"/><category term="JNDI"/><category term="JRebel"/><category term="JSP"/><category term="JVM"/><category term="Java 7"/><category term="Java 9"/><category term="Java EE 8"/><category term="Java EE8"/><category term="Java8"/><category term="JavaEE8"/><category term="JavaOne"/><category term="JavaSE9"/><category term="Jenkins"/><category term="Jodd"/><category term="Jpeg"/><category term="Json"/><category term="Juno"/><category term="Keystore"/><category term="LazyLoading"/><category term="LinkedList"/><category term="Listeners"/><category term="LiveData"/><category term="Logging"/><category term="Luna"/><category term="MEO"/><category term="MIX"/><category term="MVC"/><category term="Mailgun"/><category term="ManyToMany"/><category term="MariaDB"/><category term="Micronaut"/><category term="Microsoft WebDay 2010"/><category term="Mistakes"/><category term="Mockito"/><category term="Modals"/><category term="Modelação 3D"/><category term="Mojarra"/><category term="Multimédia"/><category term="Ngbootstrap"/><category term="NoClassDefFoundError"/><category term="Node"/><category term="Nokia"/><category term="OAuth2"/><category term="ORM"/><category term="Omnifaces"/><category term="OneToMany"/><category term="OneToOne"/><category term="Online"/><category term="Open-Source"/><category term="OpenAI"/><category term="OpenLiberty"/><category term="Opensolaris"/><category term="Orbea"/><category term="OutputStream"/><category term="Pattern Singleton"/><category term="Persistence"/><category term="Poland"/><category term="Portfólio"/><category term="Portugal"/><category term="Portugal Internet Week 2010"/><category term="Portugal Tecnológico 2010"/><category term="Premiere Pro"/><category term="PrimeFaces"/><category term="Privacy Policy"/><category term="Profiles"/><category term="Programming"/><category term="Projectos"/><category term="Properties"/><category term="Quartz"/><category term="Queue"/><category term="Queues"/><category term="Raspberry Pi"/><category term="React"/><category term="Realtime"/><category term="Redirect"/><category term="Redis"/><category term="Refresh"/><category term="Remove"/><category term="Repository"/><category term="ResultSet"/><category term="RichFaces"/><category term="Road"/><category term="Room"/><category term="Routable"/><category term="Routing"/><category term="Running"/><category term="SAP Hana"/><category term="SCJP"/><category term="SINFO"/><category term="SOAP"/><category term="SOFEA"/><category term="SQL Server 2008"/><category term="STOMP"/><category term="Scanner"/><category term="Scopes"/><category term="Scrum"/><category term="Secure"/><category term="Security"/><category term="Select2"/><category term="Server"/><category term="Service"/><category term="Slice Tool"/><category term="Smaller"/><category term="Snippets"/><category term="Sobre mim"/><category term="Software"/><category term="Solidity"/><category term="Spam"/><category term="Speedment"/><category term="Split"/><category term="Spring AI"/><category term="Spring Boot Admin"/><category term="Spring Data"/><category term="Spring Data JPA"/><category term="Spring Webflux"/><category term="Spring web"/><category term="Spring-Retry"/><category term="Steve Jobs"/><category term="Storage"/><category term="Stream"/><category term="Stress-Testing"/><category term="String"/><category term="Sublime Text"/><category term="Sun"/><category term="Synchronized"/><category term="Tecnologia"/><category term="Templates"/><category term="Testes"/><category term="Text"/><category term="Theme"/><category term="Thymeleaf"/><category term="Tinylog"/><category term="Tool"/><category term="Top"/><category term="Tracker"/><category term="Trail"/><category term="Training"/><category term="Transitions"/><category term="Truststore"/><category term="TypeScript"/><category term="User Experience Lisbon"/><category term="VS Code"/><category term="Validate"/><category term="Versioning"/><category term="ViewPager"/><category term="Visual Studio"/><category term="Vídeo"/><category term="WYSIWYG"/><category term="Walking"/><category term="Web Service"/><category term="Web3"/><category term="WebSite"/><category term="Windows"/><category term="Windows 8"/><category term="Windows Azure"/><category term="Windows Phone 7"/><category term="WordPress"/><category term="Wroclaw"/><category term="XNA"/><category term="Youtube"/><category term="ZoomIn"/><category term="Zuul"/><category term="Zwame Magazine"/><category term="androidPT"/><category term="dbForge"/><category term="iPad"/><category term="jOOQ"/><title type='text'>LOPES tech</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>484</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-524395164984926621</id><published>2024-12-12T14:32:00.001+00:00</published><updated>2024-12-12T14:32:12.855+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot 3.4.0 available now</title><content type='html'>&lt;p&gt;&lt;b&gt;&amp;nbsp;What&#39;s new in 3.4&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The highlights of the 3.4 release include:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Structured logging&lt;/li&gt;&lt;li&gt;Support for defining additional beans of the same type as those that are auto-configured&lt;/li&gt;&lt;li&gt;Expanded virtual thread support&lt;/li&gt;&lt;li&gt;Improved support for Docker Compose and Testcontainers&lt;/li&gt;&lt;li&gt;Numerous Actuator enhancements, including info and health information for SSL certificates&lt;/li&gt;&lt;li&gt;Improved image building capabilities, including out-of-the-box support for ARM&lt;/li&gt;&lt;li&gt;Auto-configuration for MockMvcTester, an AssertJ-based alternative to MockMvc&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://spring.io/blog/2024/11/21/spring-boot-3-4-0-available-now#disqus_thread&quot; target=&quot;_blank&quot;&gt;spring.io/blog/2024/11/21/spring-boot-3-4-0-available-now#disqus_thread&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/524395164984926621/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/524395164984926621?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/524395164984926621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/524395164984926621'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2024/12/spring-boot-340-available-now.html' title='Spring Boot 3.4.0 available now'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-2984766395550928536</id><published>2024-12-12T10:33:00.002+00:00</published><updated>2024-12-12T10:33:23.312+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="VS Code"/><title type='text'>Getting Started with Python in VS Code</title><content type='html'>About&lt;div&gt;&lt;blockquote&gt;In the “Getting Started with Python in VS Code” video, with &lt;a href=&quot;https://www.youtube.com/@ReynaldAdolphe&quot;&gt;‪@ReynaldAdolphe‬&lt;/a&gt; , viewers learn how to efficiently set up Python development environments in Visual Studio Code, including installing necessary extensions like Python and Pylance. The video demonstrates configuring Python interpreters, managing dependencies, and writing simple Python scripts.&lt;/blockquote&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div align=&quot;center&quot;&gt;
&lt;iframe allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; src=&quot;https://www.youtube.com/embed/D2cwvpJSBX4?si=w0v1UEri8okg5kGT&quot; title=&quot;YouTube video player&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/2984766395550928536/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/2984766395550928536?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/2984766395550928536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/2984766395550928536'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2024/12/getting-started-with-python-in-vs-code.html' title='Getting Started with Python in VS Code'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/D2cwvpJSBX4/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-5220945118771262530</id><published>2024-08-27T15:25:00.005+01:00</published><updated>2024-08-27T15:29:23.974+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Docker"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="RabbitMQ"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Sending Email Notifications with RabbitMQ Using Java (Spring Boot)</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ7XpesP0l3zvjs87rrtOdF5oKT9y1sx9bxJncYxaPedOc2spQ8ms9h6u3K9y65zKoNsI6d8k2AZ4efJslYWXK-sL2TrORMUCtJnpUKaW9feG5N-N-LDc7BBwBgXwuO0qk1XFUyF-EO-0E2q6A8kV4hHwNsiSzLammBAk6VRXJVf1o3syF5ONDUbZW-o8T/s849/rabbit1.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;477&quot; data-original-width=&quot;849&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ7XpesP0l3zvjs87rrtOdF5oKT9y1sx9bxJncYxaPedOc2spQ8ms9h6u3K9y65zKoNsI6d8k2AZ4efJslYWXK-sL2TrORMUCtJnpUKaW9feG5N-N-LDc7BBwBgXwuO0qk1XFUyF-EO-0E2q6A8kV4hHwNsiSzLammBAk6VRXJVf1o3syF5ONDUbZW-o8T/w640-h360/rabbit1.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;In this tutorial, you will learn the following&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;What is async programming?&lt;/li&gt;&lt;li&gt;How to Setting up rabbitmq using docker&lt;/li&gt;&lt;li&gt;Connect it with Spring boot application&lt;/li&gt;&lt;li&gt;Send email notification asynchronously&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;576&quot; data-original-width=&quot;908&quot; height=&quot;406&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhixPyX61mTMqokQYUY69SOXP_D_NsMrVcT1ZFBz1eJCnEkc_e2ojq0Rv3IhXbu2FJbPouo6cRRwBAvTpf3KW7lmbOYNBjH166v1LQDs78rrSFRHv9j6cbppq-ai_FT7-HHQwOsJyFYY_kQOCa-LW2jeHnZJv7eRkVIo_1jxQQeRGDsV83SmWSmeOW5zPGb/w640-h406/rabbit2.PNG&quot; style=&quot;color: #0000ee; text-align: center;&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDlpKOnFFgaPWWyK8YG3wgq6DMag-XSvWFmtZwuW9gbeD0jl-y9CRe7pppaoBaOLPXGnnkXVET-dbvn65rauF-QgNDGNGHkTSi5ewx51MwcwLB9FRaxqK7Q6c24-GmItNLbGygENyPHPtDwHcFEwi5TDxGcaRK5J7gE5AJwLu6fTuN3iK1-htuzgl2BQQD/s946/rabbit3.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;436&quot; data-original-width=&quot;946&quot; height=&quot;294&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDlpKOnFFgaPWWyK8YG3wgq6DMag-XSvWFmtZwuW9gbeD0jl-y9CRe7pppaoBaOLPXGnnkXVET-dbvn65rauF-QgNDGNGHkTSi5ewx51MwcwLB9FRaxqK7Q6c24-GmItNLbGygENyPHPtDwHcFEwi5TDxGcaRK5J7gE5AJwLu6fTuN3iK1-htuzgl2BQQD/w640-h294/rabbit3.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxfskea-lZxD_TsLRuIwV2rjg99_nT_79H5USDV6OemL2tvKOH0Q40m1H2mlOIfUzGVZey6qf9y6bP0ZNk4GfxyqyQmZGrGrRJpy7XkQgYsggqnm9zejNrci-c2y-SbLyIhSeVPQKFHuLppYhBAx3q7YhRoMpnIm9uvXPUJeKRtJ7D03UEYHyyFdcvy-tS/s997/rabbit6.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;857&quot; data-original-width=&quot;997&quot; height=&quot;550&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxfskea-lZxD_TsLRuIwV2rjg99_nT_79H5USDV6OemL2tvKOH0Q40m1H2mlOIfUzGVZey6qf9y6bP0ZNk4GfxyqyQmZGrGrRJpy7XkQgYsggqnm9zejNrci-c2y-SbLyIhSeVPQKFHuLppYhBAx3q7YhRoMpnIm9uvXPUJeKRtJ7D03UEYHyyFdcvy-tS/w640-h550/rabbit6.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEcTY_xyG_dyH9o3enQzKxjjoZgWUwXBBIBV8IqrGpkdrGnO3PnMNBDNb7ZmEOoTLrElpdTljNLg_fKHOoaxVYDTucofNrn2qvgo0F62ikq4EHxC2UjvKpqz7eKqgkmTJ2lceFYGsO1MYtrUvLWkyioq2Q0zxOKLZxtpmXx_WgWm8-YlxLGFK_zifvbaws/s1063/rabbit5.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;761&quot; data-original-width=&quot;1063&quot; height=&quot;286&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEcTY_xyG_dyH9o3enQzKxjjoZgWUwXBBIBV8IqrGpkdrGnO3PnMNBDNb7ZmEOoTLrElpdTljNLg_fKHOoaxVYDTucofNrn2qvgo0F62ikq4EHxC2UjvKpqz7eKqgkmTJ2lceFYGsO1MYtrUvLWkyioq2Q0zxOKLZxtpmXx_WgWm8-YlxLGFK_zifvbaws/w400-h286/rabbit5.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFAq8yndwQO43yK57BX0HzlluNbowjY72Hq0_3LoJP1xdE6rfLwuCjsmmCBXqnWayh-lCD0u5Tnx5GhPwvuBJsXIQQc_fHU_r_kaZPsoHD6F5KxK72fJXRtNlCBLNDtIIg6wk15ndaYNfHkp5jKXTIkVBizU6ZEsIG-C0CLG5_PngKVdmtozabDJ-rVoY_/s1109/rabbit4.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;702&quot; data-original-width=&quot;1109&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFAq8yndwQO43yK57BX0HzlluNbowjY72Hq0_3LoJP1xdE6rfLwuCjsmmCBXqnWayh-lCD0u5Tnx5GhPwvuBJsXIQQc_fHU_r_kaZPsoHD6F5KxK72fJXRtNlCBLNDtIIg6wk15ndaYNfHkp5jKXTIkVBizU6ZEsIG-C0CLG5_PngKVdmtozabDJ-rVoY_/w400-h254/rabbit4.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://olaolulode.medium.com/sending-email-notifications-with-rabbitmq-using-java-spring-boot-fc50f6bdb878&quot; target=&quot;_blank&quot;&gt;olaolulode.medium.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/5220945118771262530/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/5220945118771262530?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/5220945118771262530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/5220945118771262530'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2024/08/sending-email-notifications-with.html' title='Sending Email Notifications with RabbitMQ Using Java (Spring Boot)'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ7XpesP0l3zvjs87rrtOdF5oKT9y1sx9bxJncYxaPedOc2spQ8ms9h6u3K9y65zKoNsI6d8k2AZ4efJslYWXK-sL2TrORMUCtJnpUKaW9feG5N-N-LDc7BBwBgXwuO0qk1XFUyF-EO-0E2q6A8kV4hHwNsiSzLammBAk6VRXJVf1o3syF5ONDUbZW-o8T/s72-w640-h360-c/rabbit1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-3290963046472822227</id><published>2024-05-29T15:24:00.001+01:00</published><updated>2024-05-29T15:24:17.513+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenAI"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring AI"/><title type='text'>Building a Generative AI Application with Spring AI</title><content type='html'>&lt;pre class=&quot;brush: java&quot;&gt;&lt;/pre&gt;
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQBBiciiPW5PHuioBk_z7oDhL4u-IOY-nT7eA0WEMmz6SZV7XU6eTSOchYjm-ZAW7oxH7YfhprnFNullZP2S_O7XGoTzx6x9sAQd66YgswIvgwc3qaYtOP0Wpa0B6MCmQ5ALAz4cl97WWAzyqXDMFBlVLPtz-aMF3YMk-3WFagoRgu6Il3wexiBnSeRa1s/s884/image1.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;884&quot; data-original-width=&quot;713&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQBBiciiPW5PHuioBk_z7oDhL4u-IOY-nT7eA0WEMmz6SZV7XU6eTSOchYjm-ZAW7oxH7YfhprnFNullZP2S_O7XGoTzx6x9sAQd66YgswIvgwc3qaYtOP0Wpa0B6MCmQ5ALAz4cl97WWAzyqXDMFBlVLPtz-aMF3YMk-3WFagoRgu6Il3wexiBnSeRa1s/w323-h400/image1.PNG&quot; width=&quot;323&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikrthCyxGIcB_gMxzKd14ToQd2jonO7XZ-dyWMUm1Aln45Ismcy35q6cbCbqoaf1OnTcDq8PmAZ54MPGVP5uLOblIDj_LQoafm-Op41EBLYII-2fiLOSCxGP8Ry3H8L0MgG2JEYTmvFntre49JwKgNRwEQqaVakcUAFkkZ-JtsvPPXrPhx4z2xW8y2O6Av/s725/image2.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;660&quot; data-original-width=&quot;725&quot; height=&quot;364&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikrthCyxGIcB_gMxzKd14ToQd2jonO7XZ-dyWMUm1Aln45Ismcy35q6cbCbqoaf1OnTcDq8PmAZ54MPGVP5uLOblIDj_LQoafm-Op41EBLYII-2fiLOSCxGP8Ry3H8L0MgG2JEYTmvFntre49JwKgNRwEQqaVakcUAFkkZ-JtsvPPXrPhx4z2xW8y2O6Av/w400-h364/image2.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzsLsNFtYxw60uDkXipSd0cLrQkkDHu0GmfIEk7buJzkabaPswpspvapi2rq262-bKpm3FXhsI88CGCg0dPJBqwPf4dDDJJgWlLAMceY7GreB4Gk8OsQsz-TqnEq-p0aOy_aNCY7xh0a8W7InvtRuxLXSZ_T2aDAIDWGZ84ORZJSzpYEPxizvKArljKoc0/s900/image3.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;665&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzsLsNFtYxw60uDkXipSd0cLrQkkDHu0GmfIEk7buJzkabaPswpspvapi2rq262-bKpm3FXhsI88CGCg0dPJBqwPf4dDDJJgWlLAMceY7GreB4Gk8OsQsz-TqnEq-p0aOy_aNCY7xh0a8W7InvtRuxLXSZ_T2aDAIDWGZ84ORZJSzpYEPxizvKArljKoc0/w295-h400/image3.PNG&quot; width=&quot;295&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;&lt;pre&gt;@Service
public class SpringAIService {

    @Autowired
    AiClient aiClient;

    @Value(&quot;${spring.ai.openai.apikey}&quot;)
    private String apiKey;

    @Value(&quot;${spring.ai.openai.imageUrl}&quot;)
    private String openAIImageUrl;


    public String getJoke(String topic){
        PromptTemplate promptTemplate = new PromptTemplate(&quot;&quot;&quot;
                Crafting a compilation of programming jokes for my website. Would you like me to create a joke about {topic}?
                &quot;&quot;&quot;);
        promptTemplate.add(&quot;topic&quot;, topic);
        return this.aiClient.generate(promptTemplate.create()).getGeneration().getText();
    }

    public String getBook(String category, String year) {
        PromptTemplate promptTemplate = new PromptTemplate(&quot;&quot;&quot;
                I would like to research some books. Please give me a book about {category} in {year} to get started?
                But pick the best best you can think of. I&#39;m a book critic. Ratings are great help.
                And who wrote it? And who help it? Can you give me a short plot summary and also it&#39;s name?
                But don&#39;t give me too much information. I don&#39;t want any spoilers.
                And please give me these details in the following JSON format: category, year, bookName, author, review, smallSummary.
                &quot;&quot;&quot;);
        Map.of(&quot;category&quot;, category, &quot;year&quot;, year).forEach(promptTemplate::add);
        AiResponse generate = this.aiClient.generate(promptTemplate.create());
        return generate.getGeneration().getText();
    }


    public InputStreamResource getImage(@RequestParam(name = &quot;topic&quot;) String topic) throws URISyntaxException {
        PromptTemplate promptTemplate = new PromptTemplate(&quot;&quot;&quot;
                 I am really bored from online memes. Can you create me a prompt about {topic}.
                 Elevate the given topic. Make it sophisticated.
                 Make a resolution of 256x256, but ensure that it is presented in json.
                 I want only one image creation. Give me as JSON format: prompt, n, size.
                &quot;&quot;&quot;);
        promptTemplate.add(&quot;topic&quot;, topic);
        String imagePrompt = this.aiClient.generate(promptTemplate.create()).getGeneration().getText();

        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        headers.add(&quot;Authorization&quot;, &quot;Bearer &quot; + apiKey);
        headers.add(&quot;Content-Type&quot;, &quot;application/json&quot;);
        HttpEntity&lt;string&gt; httpEntity = new HttpEntity&amp;lt;&amp;gt;(imagePrompt,headers);

        String imageUrl = restTemplate.exchange(openAIImageUrl, HttpMethod.POST, httpEntity, GeneratedImage.class)
                .getBody().getData().get(0).getUrl();
        byte[] imageBytes = restTemplate.getForObject(new URI(imageUrl), byte[].class);
        assert imageBytes != null;
        return new InputStreamResource(new java.io.ByteArrayInputStream(imageBytes));
    }
}
&lt;/string&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij0XY6dkE8DaoOiXSpFjRsVxB6U-tYzQnddaSe_shArb4eLN4XmBJtT4LMMP5guYH6UvqTx9lHArZSkBfnFJKnQEp8_iEyJUq5CEOyf4vLt62VfhmlIzZqR4sRWDul3y6HUnxJkGAFpPMXYrZX1UH7E5VTGJMqSZwjKD2q_Q1r4rOMfG7HDlUAK-wTCmjt/s900/image4.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;576&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij0XY6dkE8DaoOiXSpFjRsVxB6U-tYzQnddaSe_shArb4eLN4XmBJtT4LMMP5guYH6UvqTx9lHArZSkBfnFJKnQEp8_iEyJUq5CEOyf4vLt62VfhmlIzZqR4sRWDul3y6HUnxJkGAFpPMXYrZX1UH7E5VTGJMqSZwjKD2q_Q1r4rOMfG7HDlUAK-wTCmjt/w256-h400/image4.PNG&quot; width=&quot;256&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;pre&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;@RestController&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;@RequestMapping(&quot;/api/v1&quot;)&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;public class SpringAIController {&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    @Autowired&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    SpringAIService aiService;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    @GetMapping(&quot;/joke&quot;)&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    public String getJoke(@RequestParam String topic) {&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;        return aiService.getJoke(topic);&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    }&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    @GetMapping(&quot;/book&quot;)&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    public String getBook(@RequestParam(name = &quot;category&quot;) String category, @RequestParam(name = &quot;year&quot;) String year) {&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;        return aiService.getBook(category, year);&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    }&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    @GetMapping(value = &quot;/image&quot;, produces = &quot;image/jpeg&quot;)&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    public ResponseEntity&lt;inputstreamresource&gt; getImage(@RequestParam(name = &quot;topic&quot;) String topic) throws URISyntaxException {&lt;/inputstreamresource&gt;&lt;/div&gt;&lt;inputstreamresource&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;        return ResponseEntity.ok().body(aiService.getImage(topic));&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    }&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;}&lt;/div&gt;&lt;/inputstreamresource&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_6EE_lSYtd29fq5KNZUPGcqZjmBIsg88RveXXgXauJt9NtQ_5AYX8oq3A1UjSkyUfwXHG61wGbCl_0VvBfdERfMQefa5v8Z4Buc9I2CecrWVIJBttyS4TF5GeZ7hyphenhyphenC7rE0hr9WFeDrQIrJumrLrfCxHlNMDrdtYaMfr0leO4XKjbzTvewXqfxbzJ9-OR-/s856/image5.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;856&quot; data-original-width=&quot;583&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_6EE_lSYtd29fq5KNZUPGcqZjmBIsg88RveXXgXauJt9NtQ_5AYX8oq3A1UjSkyUfwXHG61wGbCl_0VvBfdERfMQefa5v8Z4Buc9I2CecrWVIJBttyS4TF5GeZ7hyphenhyphenC7rE0hr9WFeDrQIrJumrLrfCxHlNMDrdtYaMfr0leO4XKjbzTvewXqfxbzJ9-OR-/w273-h400/image5.PNG&quot; width=&quot;273&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/version-1/building-a-generative-ai-application-with-spring-ai-dce717e38526&quot; target=&quot;_blank&quot;&gt;medium.com/version-1&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/3290963046472822227/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/3290963046472822227?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/3290963046472822227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/3290963046472822227'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2024/05/building-generative-ai-application-with.html' title='Building a Generative AI Application with Spring AI'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQBBiciiPW5PHuioBk_z7oDhL4u-IOY-nT7eA0WEMmz6SZV7XU6eTSOchYjm-ZAW7oxH7YfhprnFNullZP2S_O7XGoTzx6x9sAQd66YgswIvgwc3qaYtOP0Wpa0B6MCmQ5ALAz4cl97WWAzyqXDMFBlVLPtz-aMF3YMk-3WFagoRgu6Il3wexiBnSeRa1s/s72-w323-h400-c/image1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-6038015682558168960</id><published>2024-04-11T14:30:00.000+01:00</published><updated>2024-04-11T14:36:28.921+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Decryption"/><category scheme="http://www.blogger.com/atom/ns#" term="Encryption"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Encryption and Decryption in Java</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;Imagine you’re sharing private information, like your credit card details or medical history.&lt;/blockquote&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-790qGjAt_If32_BvaRgBc7xTtUDtiMxkSB4ccMCZlQnhd16CFbuauQZTPewL4sIfq_Aod7_52Zmcm1NQw7xU2Pg5Jt3sBDpLNvNzL_2k9zR1RwU_oo6f2OCk3qozadoVkG6-rkmyZhT2FzdxBaBCtIHxgyXoOBsWSD0-Zb-IZ-X9UUE-Sy6spNTAze-9/s1294/img11.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;753&quot; data-original-width=&quot;1294&quot; height=&quot;372&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-790qGjAt_If32_BvaRgBc7xTtUDtiMxkSB4ccMCZlQnhd16CFbuauQZTPewL4sIfq_Aod7_52Zmcm1NQw7xU2Pg5Jt3sBDpLNvNzL_2k9zR1RwU_oo6f2OCk3qozadoVkG6-rkmyZhT2FzdxBaBCtIHxgyXoOBsWSD0-Zb-IZ-X9UUE-Sy6spNTAze-9/w640-h372/img11.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijzM0Xdbrt_dk344aYREhz4vm-ExfPi8vYxoTuS2M9DO0Yl5iqXLbTkr9CF3I8CuKGCOlBXs7Z8SHZP2ra9e6_UJ6Pcvyg7XM3MngwYHjMp6lQy6Yh7c8eXgAGkBSPohUso5A4cA9iyZMU099N6B0WLcTJU9qVp8KWENv95a2tKR2F9zMuH-gmkf_BctKg/s1328/img12.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;770&quot; data-original-width=&quot;1328&quot; height=&quot;372&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijzM0Xdbrt_dk344aYREhz4vm-ExfPi8vYxoTuS2M9DO0Yl5iqXLbTkr9CF3I8CuKGCOlBXs7Z8SHZP2ra9e6_UJ6Pcvyg7XM3MngwYHjMp6lQy6Yh7c8eXgAGkBSPohUso5A4cA9iyZMU099N6B0WLcTJU9qVp8KWENv95a2tKR2F9zMuH-gmkf_BctKg/w640-h372/img12.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5_EOusA1QRa36OnOz6Lj4UBWEpRp5CHmxNBCfehNDitr_dIUtBp8CgQL3PgWwyFVkDwDykvJZ7Rz8dBJ8TBbVHgnPl7Zmo7eg48rNY1utDF1w-HToNEO8rIqdicYy9rLeOzD-g5ioNRJf2hPKuA7fKywPMYfcXEw8egP7EbKze2kjgy2lYXtwCkOLmSpi/s1300/img13.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;672&quot; data-original-width=&quot;1300&quot; height=&quot;330&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5_EOusA1QRa36OnOz6Lj4UBWEpRp5CHmxNBCfehNDitr_dIUtBp8CgQL3PgWwyFVkDwDykvJZ7Rz8dBJ8TBbVHgnPl7Zmo7eg48rNY1utDF1w-HToNEO8rIqdicYy9rLeOzD-g5ioNRJf2hPKuA7fKywPMYfcXEw8egP7EbKze2kjgy2lYXtwCkOLmSpi/w640-h330/img13.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/@sharadblog/encryption-and-decryption-in-java-60948b8a3613&quot; target=&quot;_blank&quot;&gt;medium.com/@sharadblog&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/6038015682558168960/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/6038015682558168960?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/6038015682558168960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/6038015682558168960'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2024/04/encryption-and-decryption-in-java.html' title='Encryption and Decryption in Java'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-790qGjAt_If32_BvaRgBc7xTtUDtiMxkSB4ccMCZlQnhd16CFbuauQZTPewL4sIfq_Aod7_52Zmcm1NQw7xU2Pg5Jt3sBDpLNvNzL_2k9zR1RwU_oo6f2OCk3qozadoVkG6-rkmyZhT2FzdxBaBCtIHxgyXoOBsWSD0-Zb-IZ-X9UUE-Sy6spNTAze-9/s72-w640-h372-c/img11.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-1952328962496358365</id><published>2024-04-04T11:54:00.000+01:00</published><updated>2024-04-04T11:54:30.786+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JWT"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Postman"/><title type='text'>Implement JWT authentication in a Spring Boot 3 application</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Prerequisites&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;JDK 11 or higher&amp;nbsp;&lt;/li&gt;&lt;li&gt;Maven 3.8 or higher&amp;nbsp;&lt;/li&gt;&lt;li&gt;MySQL running on Docker&amp;nbsp;&lt;/li&gt;&lt;li&gt;An HTTP client such as Postman, Insomnia, cURL, etc.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheJVgsj4u8nRy_O1WDtmrFY6iQhAPilG41BIvSIgCqCF-G9XkoL3ORvGkofHla1dPFsbqFPMFGqPnoVias2zXdZGLVSd6eBTQtPaZwf8dBkEJVmlw6vXx42V9VpqPR92RhUjs6IXoo3ltjud4zA07f-PA6ZnGdalnBQ5cs4nm1bp-Q-4bfJAVEbmMjcnIV/s1201/img1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;722&quot; data-original-width=&quot;1201&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheJVgsj4u8nRy_O1WDtmrFY6iQhAPilG41BIvSIgCqCF-G9XkoL3ORvGkofHla1dPFsbqFPMFGqPnoVias2zXdZGLVSd6eBTQtPaZwf8dBkEJVmlw6vXx42V9VpqPR92RhUjs6IXoo3ltjud4zA07f-PA6ZnGdalnBQ5cs4nm1bp-Q-4bfJAVEbmMjcnIV/w400-h240/img1.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhezulvK7Y75wqT_S3IrEt9us3gmYBsidSuGbJKpXTLGxU_9p143-7pe_-CnCHdEAbcMrpp5roBGvKNoG45TlK2i-8ILFK2SD4dAEYncsGDk5XQMnClft_w1WmIrWJbT1kdvxSG1ITEIWUUH-0hG1dzKgrKqJYNy8GrOubLzgXxo9GLG9kLv9tG4U5iYs1t/s1369/img2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;739&quot; data-original-width=&quot;1369&quot; height=&quot;346&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhezulvK7Y75wqT_S3IrEt9us3gmYBsidSuGbJKpXTLGxU_9p143-7pe_-CnCHdEAbcMrpp5roBGvKNoG45TlK2i-8ILFK2SD4dAEYncsGDk5XQMnClft_w1WmIrWJbT1kdvxSG1ITEIWUUH-0hG1dzKgrKqJYNy8GrOubLzgXxo9GLG9kLv9tG4U5iYs1t/w640-h346/img2.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF5yPodgWnXD-UdL_ZoSsXKwZ_pwf1imaDMViYu6yEc3MsL3peF1QiTW4IRkHUCc39KnYQ5Be8xKer4eKUEMPXUVP_msoEglk5b45ZycDUYgQYZ526HMQqk4ujxdqs2ptWcer_moOY67BRTs5a7LHWzrkVTlxBhUHjEmik38G94e6rpVlPHaGwcL58GsR1/s1286/img3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;449&quot; data-original-width=&quot;1286&quot; height=&quot;224&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF5yPodgWnXD-UdL_ZoSsXKwZ_pwf1imaDMViYu6yEc3MsL3peF1QiTW4IRkHUCc39KnYQ5Be8xKer4eKUEMPXUVP_msoEglk5b45ZycDUYgQYZ526HMQqk4ujxdqs2ptWcer_moOY67BRTs5a7LHWzrkVTlxBhUHjEmik38G94e6rpVlPHaGwcL58GsR1/w640-h224/img3.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmlHD5uthIWGhyphenhyphen1wjY1Y1OeWLWUP-lVdNpmubKdy-7XzuX6lDfVTwz-YdOWYpILab6FyVeF5ahaL6B6ykBJui8Y_DWSvHR6ZSF4lt85NjS6VcBWcYzz03ga7xEPUoz7LTVfV6J_4xVVcuUzU1wCMKjcTASdZ8nAk0vHts4Vf0f0nuvTGUQE_J0MP21frGh/s1498/img4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;547&quot; data-original-width=&quot;1498&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmlHD5uthIWGhyphenhyphen1wjY1Y1OeWLWUP-lVdNpmubKdy-7XzuX6lDfVTwz-YdOWYpILab6FyVeF5ahaL6B6ykBJui8Y_DWSvHR6ZSF4lt85NjS6VcBWcYzz03ga7xEPUoz7LTVfV6J_4xVVcuUzU1wCMKjcTASdZ8nAk0vHts4Vf0f0nuvTGUQE_J0MP21frGh/w640-h234/img4.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/@tericcabrel/implement-jwt-authentication-in-a-spring-boot-3-application-5839e4fd8fac&quot; target=&quot;_blank&quot;&gt;medium.com/@tericcabrel/&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/1952328962496358365/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/1952328962496358365?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/1952328962496358365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/1952328962496358365'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2024/04/implement-jwt-authentication-in-spring.html' title='Implement JWT authentication in a Spring Boot 3 application'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheJVgsj4u8nRy_O1WDtmrFY6iQhAPilG41BIvSIgCqCF-G9XkoL3ORvGkofHla1dPFsbqFPMFGqPnoVias2zXdZGLVSd6eBTQtPaZwf8dBkEJVmlw6vXx42V9VpqPR92RhUjs6IXoo3ltjud4zA07f-PA6ZnGdalnBQ5cs4nm1bp-Q-4bfJAVEbmMjcnIV/s72-w400-h240-c/img1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-1723999613859780696</id><published>2024-01-17T14:35:00.000+00:00</published><updated>2024-01-17T14:35:02.051+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PDF"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Generate PDF Using Apache FOP</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;Generate PDF Using Apache FOP&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOWeoXXePzSDGh9HByUnpBbAIqnfu_rvCMxt5TM2B6ZYM6QHpOWmk_pFcRCdunBG_c_MZTg8ad34W82M446tPBUviWxmL4uOpKem9AOIfPXWkEghSuQ3JosxgEq0QEvjOywSC7vLpphvmq2J-VRQPifizxFv1aHV2kUfCDywwRWm2puPaDEgm-rhe5Ys_b/s777/image1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;777&quot; data-original-width=&quot;713&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOWeoXXePzSDGh9HByUnpBbAIqnfu_rvCMxt5TM2B6ZYM6QHpOWmk_pFcRCdunBG_c_MZTg8ad34W82M446tPBUviWxmL4uOpKem9AOIfPXWkEghSuQ3JosxgEq0QEvjOywSC7vLpphvmq2J-VRQPifizxFv1aHV2kUfCDywwRWm2puPaDEgm-rhe5Ys_b/w368-h400/image1.PNG&quot; width=&quot;368&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSEeKeMWP-wN0alxt-eBda0nur_WhZhHm4OFW1qoVHFxgpqr64TxjxEVIiWuyMFHkKSSyEUtlnFlh4uawzhdo5LIT3wdO-7dTYYnNNuc5TAZy42QD_bYIzwb60fQXtDBDzjVptBOb5ZoOT1dBRn856VoRzlGOJxxLD9YcTmgTqQX_UyQ1zuX3GxOHahqMt/s765/image2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;765&quot; data-original-width=&quot;756&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSEeKeMWP-wN0alxt-eBda0nur_WhZhHm4OFW1qoVHFxgpqr64TxjxEVIiWuyMFHkKSSyEUtlnFlh4uawzhdo5LIT3wdO-7dTYYnNNuc5TAZy42QD_bYIzwb60fQXtDBDzjVptBOb5ZoOT1dBRn856VoRzlGOJxxLD9YcTmgTqQX_UyQ1zuX3GxOHahqMt/w395-h400/image2.PNG&quot; width=&quot;395&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqIqOOV5VJcWawizAdw-ATkjtYaMMPWu8wPQQDU4QBAQBDCnj3oCFYsi1M5aHS5bkrrr80QazUXOWRWULh2mPSzVl8E3yjTnaGHiRjvSwbYBDeOBDYhKk3eqAKc7vLf-Burpt21qF4DWwP4PMhyEOFm2v7OqZif-DNCTAwwhlCy-nAYBtuYFbQEPP3_eIo/s742/image3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;633&quot; data-original-width=&quot;742&quot; height=&quot;341&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqIqOOV5VJcWawizAdw-ATkjtYaMMPWu8wPQQDU4QBAQBDCnj3oCFYsi1M5aHS5bkrrr80QazUXOWRWULh2mPSzVl8E3yjTnaGHiRjvSwbYBDeOBDYhKk3eqAKc7vLf-Burpt21qF4DWwP4PMhyEOFm2v7OqZif-DNCTAwwhlCy-nAYBtuYFbQEPP3_eIo/w400-h341/image3.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0tC_Dug7OBjCPJGPumujUIKTJtmF2WbwK4p79dCfzw7Y9f3qnOYZB5SZmh4sHK0koXdpdeUBEu69rWO1WTUIQcwr8_D2AFKPIBI47RYl3HGyOao_lXY_4V9eRJetr1YR8NONYz1qPAMmgqJelDx79WuHYVgkTCb52L_TAXKkIWoIvMOhtsnRo9s9BMLgr/s835/image4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;835&quot; data-original-width=&quot;736&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0tC_Dug7OBjCPJGPumujUIKTJtmF2WbwK4p79dCfzw7Y9f3qnOYZB5SZmh4sHK0koXdpdeUBEu69rWO1WTUIQcwr8_D2AFKPIBI47RYl3HGyOao_lXY_4V9eRJetr1YR8NONYz1qPAMmgqJelDx79WuHYVgkTCb52L_TAXKkIWoIvMOhtsnRo9s9BMLgr/w353-h400/image4.PNG&quot; width=&quot;353&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho9nvK4tFi9WNsdpxPlJV9O6foqfwvCe6UBi-XJuDCPX9DNRtWSvYIwiRos0fRpWFo1Rr0vv2s1V1Jy2Kfsm46MB95JAdgfhIL0TQ6cmakCxX8Tw-42CiYGVAX5GlN3FKJZMDmY91VhNxuhvJz4oPNm65BeB0zmnJPR1d_KlI2hDPjRd7FldU1x0LV1Nbu/s800/image5.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;748&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho9nvK4tFi9WNsdpxPlJV9O6foqfwvCe6UBi-XJuDCPX9DNRtWSvYIwiRos0fRpWFo1Rr0vv2s1V1Jy2Kfsm46MB95JAdgfhIL0TQ6cmakCxX8Tw-42CiYGVAX5GlN3FKJZMDmY91VhNxuhvJz4oPNm65BeB0zmnJPR1d_KlI2hDPjRd7FldU1x0LV1Nbu/s320/image5.PNG&quot; width=&quot;299&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://malshani-wijekoon.medium.com/generate-pdf-using-apache-fop-formatting-objects-processor-66e0efe3a088&quot; target=&quot;_blank&quot;&gt;malshani-wijekoon.medium.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Code source:&amp;nbsp;&lt;a href=&quot;https://github.com/malshaniwijekoon/FOP&quot; target=&quot;_blank&quot;&gt;https://github.com/malshaniwijekoon/FOP&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/1723999613859780696/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/1723999613859780696?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/1723999613859780696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/1723999613859780696'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2024/01/generate-pdf-using-apache-fop.html' title='Generate PDF Using Apache FOP'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOWeoXXePzSDGh9HByUnpBbAIqnfu_rvCMxt5TM2B6ZYM6QHpOWmk_pFcRCdunBG_c_MZTg8ad34W82M446tPBUviWxmL4uOpKem9AOIfPXWkEghSuQ3JosxgEq0QEvjOywSC7vLpphvmq2J-VRQPifizxFv1aHV2kUfCDywwRWm2puPaDEgm-rhe5Ys_b/s72-w368-h400-c/image1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-7709770602810257700</id><published>2023-11-20T14:50:00.003+00:00</published><updated>2023-11-20T14:50:29.850+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ChatGPT"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>ChatGPT Integration with Spring Boot Application</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJtuznuWh3lNTNJZmMNULdl7bVPh7QBgtX30-TwLEpbP_oZ87cGkUWeLVHjgjRA1AEi5aW-weV_u7QPtTt0iB_xdBJuBX1WF6wiJN2LiPU45LdnX5q5h-j-IeKsVOljIf_qcSiURMdavLxss8m3B4XXnrl9NdhyZofb5wufEuOzNWO_huDxaoyFA9PjL_i/s846/gpt1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;494&quot; data-original-width=&quot;846&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJtuznuWh3lNTNJZmMNULdl7bVPh7QBgtX30-TwLEpbP_oZ87cGkUWeLVHjgjRA1AEi5aW-weV_u7QPtTt0iB_xdBJuBX1WF6wiJN2LiPU45LdnX5q5h-j-IeKsVOljIf_qcSiURMdavLxss8m3B4XXnrl9NdhyZofb5wufEuOzNWO_huDxaoyFA9PjL_i/w400-h234/gpt1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;OpenAI ChatGPT APIs&lt;/b&gt;&lt;/div&gt;&lt;div&gt;API (POST https://api.openai.com/v1/chat/completions) to generate responses to a prompt.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What we need to send to invoke the OpenAI API?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Upon accessing the “Create Chat Completion” API link, the following information regarding endpoint, request, and response is visible.&lt;/li&gt;&lt;li&gt;Endpoint: POST https://api.openai.com/v1/chat/completions&lt;/li&gt;&lt;li&gt;Go to Playgroud and type any message e.g. “What is spring boot?”&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6S-CoxkHxPNaZAsmY3afGWNTBgTAtRhQytcZnesq-ose7FiznOei44G1djubM5O_MKrBcll5qQ1RHgAp3AO-MsgWbrRFqsPSHK7tQM9KikqIzT_YhotPmWYtyWUqz2UHyPXFB3_LexTVanAzVRIOHxpcVQrotkpSd9itRr8HZWSkKhMGFqZdlpDol70GC/s862/gpt2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;417&quot; data-original-width=&quot;862&quot; height=&quot;194&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6S-CoxkHxPNaZAsmY3afGWNTBgTAtRhQytcZnesq-ose7FiznOei44G1djubM5O_MKrBcll5qQ1RHgAp3AO-MsgWbrRFqsPSHK7tQM9KikqIzT_YhotPmWYtyWUqz2UHyPXFB3_LexTVanAzVRIOHxpcVQrotkpSd9itRr8HZWSkKhMGFqZdlpDol70GC/w400-h194/gpt2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkQIQRQEA8yltE5suftZuDo2UvrHkFL5GsnfBR0paVSFig8nlsERhrvqr1wTzbSsfZw-JFdWWaHSZKfXRKr7oLSpQ_GF8abTSQ6dfaEZpJEP16geiua_7PhwqU1QlvhEYkbhQGojb5QiEpxQjs1Di3BwmTTwSN8-94sZ04z4uvoXbKgF5nUaDlQXQbRA7p/s828/gpt3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;597&quot; data-original-width=&quot;828&quot; height=&quot;289&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkQIQRQEA8yltE5suftZuDo2UvrHkFL5GsnfBR0paVSFig8nlsERhrvqr1wTzbSsfZw-JFdWWaHSZKfXRKr7oLSpQ_GF8abTSQ6dfaEZpJEP16geiua_7PhwqU1QlvhEYkbhQGojb5QiEpxQjs1Di3BwmTTwSN8-94sZ04z4uvoXbKgF5nUaDlQXQbRA7p/w400-h289/gpt3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;https://platform.openai.com/api-keys&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs67oG3Vgspo8LsxR1DHgQYibPnCGIwiQTWpDLG6zM6JcyRs_QFuOgKNHZzkUtF8tDzoSTTyFpRtoOtL8cl43A0B-6PTsnIh2TXVFS-Y7EVus2rknlEZANJQ2EBB7uYK8w93JOYNGXtubZ7pBITGw-EwLnyJuwa_SCptmO7XAfdXSwzfKf-A4BzhdfjAS6/s982/gpt4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;374&quot; data-original-width=&quot;982&quot; height=&quot;153&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs67oG3Vgspo8LsxR1DHgQYibPnCGIwiQTWpDLG6zM6JcyRs_QFuOgKNHZzkUtF8tDzoSTTyFpRtoOtL8cl43A0B-6PTsnIh2TXVFS-Y7EVus2rknlEZANJQ2EBB7uYK8w93JOYNGXtubZ7pBITGw-EwLnyJuwa_SCptmO7XAfdXSwzfKf-A4BzhdfjAS6/w400-h153/gpt4.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA5tfcGeruSnnvNikHfXL-XtcijJnt1tLVhJse3EEi1NKgsiSg-6t6mXRZnXddXdQVMJ0KSk9xSYK5gKyfKiNfQzm7UThVaSMCEz2yJVezzzEtAGceB0vztUcn22Y_E4Y8vmPlwdddvhxMrzjEcozf2MwxKfq0u5P4lTrSt2q4sDVXzKbdeFHMCxqkSq86/s992/gpt5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;663&quot; data-original-width=&quot;992&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA5tfcGeruSnnvNikHfXL-XtcijJnt1tLVhJse3EEi1NKgsiSg-6t6mXRZnXddXdQVMJ0KSk9xSYK5gKyfKiNfQzm7UThVaSMCEz2yJVezzzEtAGceB0vztUcn22Y_E4Y8vmPlwdddvhxMrzjEcozf2MwxKfq0u5P4lTrSt2q4sDVXzKbdeFHMCxqkSq86/w400-h268/gpt5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJWFXe_RGW4mA6L7s0lPcDuHtApWkNkzKdjHjSVZmtzYFXqOwKd9-PG4OPIxzHTSSk1-yAEwrHuqyxbUIvqzuUmrAyDgdymZ2jp95t6Fppgi64ARIU8chcCL8tYPAwm6XWAlIN3_CsdCPL8yy_8_qyzW-003wf1WmxRgwyMEWAhFBNJ6vIGMQgR5u_ETPG/s796/gpt6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;796&quot; data-original-width=&quot;720&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJWFXe_RGW4mA6L7s0lPcDuHtApWkNkzKdjHjSVZmtzYFXqOwKd9-PG4OPIxzHTSSk1-yAEwrHuqyxbUIvqzuUmrAyDgdymZ2jp95t6Fppgi64ARIU8chcCL8tYPAwm6XWAlIN3_CsdCPL8yy_8_qyzW-003wf1WmxRgwyMEWAhFBNJ6vIGMQgR5u_ETPG/w361-h400/gpt6.png&quot; width=&quot;361&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBQ8gli59ydaFp4XPPhmpNi51OGrfdqTCJshFIhV4VauJHyNYgwe8pBVVgNTWy18U4Ev-OxzDmKvjOy3MFmyUm-NzzyvaiRRzNzuzHyY92KfKpq-Q-KHFL9szwr8eAIfeeGAAsEcZuy4gQIWfJFjZ80whnQqmw4CI5GXMvAI3zz0he9ZeyQTTpHRC73xwp/s638/gpt7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;248&quot; data-original-width=&quot;638&quot; height=&quot;155&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBQ8gli59ydaFp4XPPhmpNi51OGrfdqTCJshFIhV4VauJHyNYgwe8pBVVgNTWy18U4Ev-OxzDmKvjOy3MFmyUm-NzzyvaiRRzNzuzHyY92KfKpq-Q-KHFL9szwr8eAIfeeGAAsEcZuy4gQIWfJFjZ80whnQqmw4CI5GXMvAI3zz0he9ZeyQTTpHRC73xwp/w400-h155/gpt7.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHw-aneSxqv3Vtz42NZ3YFqzBmDkmWXPvjT6-pkBIiDEhkQ71ZrE65XT45fUsiZT2XBKUs5-zugJm1ne_9B_x059GSQYhYt6KBLzSBVgANytAGv1vRK3Uo6f0S3Avzp-UmgMsx_czXhK9AWaRCvafcDq8LYoF_3aojW5aXG6TRtPlxGdENR5mDt4Clsd76/s1060/gpt8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;635&quot; data-original-width=&quot;1060&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHw-aneSxqv3Vtz42NZ3YFqzBmDkmWXPvjT6-pkBIiDEhkQ71ZrE65XT45fUsiZT2XBKUs5-zugJm1ne_9B_x059GSQYhYt6KBLzSBVgANytAGv1vRK3Uo6f0S3Avzp-UmgMsx_czXhK9AWaRCvafcDq8LYoF_3aojW5aXG6TRtPlxGdENR5mDt4Clsd76/w400-h240/gpt8.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://levelup.gitconnected.com/chatgtp-integration-with-spring-boot-application-280637e69e73&quot; target=&quot;_blank&quot;&gt;levelup.gitconnected.com&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/7709770602810257700/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/7709770602810257700?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/7709770602810257700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/7709770602810257700'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/11/chatgpt-integration-with-spring-boot.html' title='ChatGPT Integration with Spring Boot Application'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJtuznuWh3lNTNJZmMNULdl7bVPh7QBgtX30-TwLEpbP_oZ87cGkUWeLVHjgjRA1AEi5aW-weV_u7QPtTt0iB_xdBJuBX1WF6wiJN2LiPU45LdnX5q5h-j-IeKsVOljIf_qcSiURMdavLxss8m3B4XXnrl9NdhyZofb5wufEuOzNWO_huDxaoyFA9PjL_i/s72-w400-h234-c/gpt1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-4622367807828976095</id><published>2023-10-25T09:45:00.007+01:00</published><updated>2023-10-25T09:45:53.580+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="RESTful"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Versioning"/><title type='text'>SpringBoot - Versioning RESTful APIs </title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
API versioning with SpringBoot&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvkWLuT6ZhyOOq764DryUAZk3HKMzX3PA934ciOJ3Keh8RgYZyWmYEcfOwyrP8Zb2-WqD2_29IdPcCp3ovI6T9XEp-ViKJqK3OhnJl5D2BCny-XNP8RaFHUoiKEw7Q09RJIa2q-Xv8HarassdZQWghG7pZa10vDQDfjkfiCzhwo9aY2fCcA6O9Rx-LcC2N/s854/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;262&quot; data-original-width=&quot;854&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvkWLuT6ZhyOOq764DryUAZk3HKMzX3PA934ciOJ3Keh8RgYZyWmYEcfOwyrP8Zb2-WqD2_29IdPcCp3ovI6T9XEp-ViKJqK3OhnJl5D2BCny-XNP8RaFHUoiKEw7Q09RJIa2q-Xv8HarassdZQWghG7pZa10vDQDfjkfiCzhwo9aY2fCcA6O9Rx-LcC2N/w640-h196/1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbxcAcPIpo_VPLLaafazuzZn-oAVZ-EiUUkKi2aMK5LJbgQzIKjvOIjDxNZTMf0dtk4ISmlY3hH5BcNNbfwhQZtqHvIDCG3Gi1maMK_DBqzsFAfuPZR0a2JttvzLg8jHyd6Th7wvKPV9B_GN37podLOiEArFxsLPSlhrkxggfUv2zuGpsR4dEqMKzTNbAW/s1490/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;710&quot; data-original-width=&quot;1490&quot; height=&quot;304&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbxcAcPIpo_VPLLaafazuzZn-oAVZ-EiUUkKi2aMK5LJbgQzIKjvOIjDxNZTMf0dtk4ISmlY3hH5BcNNbfwhQZtqHvIDCG3Gi1maMK_DBqzsFAfuPZR0a2JttvzLg8jHyd6Th7wvKPV9B_GN37podLOiEArFxsLPSlhrkxggfUv2zuGpsR4dEqMKzTNbAW/w640-h304/2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgetLz4WxKMrClBRla2_uT-xtIb3g9q-8FfovysVyzvT1cR_AlD0vDOwoB66UZUlQRCYxUfNdLFvjMF0YVfr5u0Z-tcKciqVYdAjEwaZMO54TK1rWhnPwp80g1LT5I_IGMZ7jP9VQ_QYzgb5L3TZrHWJSS4ozWtbGHKiyPpnRyxBNqx20mY5wGOs8iDmHU3/s1146/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;363&quot; data-original-width=&quot;1146&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgetLz4WxKMrClBRla2_uT-xtIb3g9q-8FfovysVyzvT1cR_AlD0vDOwoB66UZUlQRCYxUfNdLFvjMF0YVfr5u0Z-tcKciqVYdAjEwaZMO54TK1rWhnPwp80g1LT5I_IGMZ7jP9VQ_QYzgb5L3TZrHWJSS4ozWtbGHKiyPpnRyxBNqx20mY5wGOs8iDmHU3/w640-h202/3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv-R4YyEjMU8rsa41TkewQQkhjfCFpb1Ug_WQdkk8uYN90isb8vcCat9iinJuqkHKJr-yCZlxgLNw348sh9_snD-1BMcxfB9NInFvgXBYBrQlIWKUCA7RT5Vle6UljOCbZREjfCszL_sSCJPKVXvFnDYYvxme5HNiZuVQcKn25xb3A0MFkFSQ7Tea1gHdF/s1616/5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;774&quot; data-original-width=&quot;1616&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv-R4YyEjMU8rsa41TkewQQkhjfCFpb1Ug_WQdkk8uYN90isb8vcCat9iinJuqkHKJr-yCZlxgLNw348sh9_snD-1BMcxfB9NInFvgXBYBrQlIWKUCA7RT5Vle6UljOCbZREjfCszL_sSCJPKVXvFnDYYvxme5HNiZuVQcKn25xb3A0MFkFSQ7Tea1gHdF/w640-h306/5.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://jackynote.medium.com/versioning-restful-apis-with-spring-boot-in-5-minutes-873003a87fa7&quot; target=&quot;_blank&quot;&gt;jackynote.medium.com&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/4622367807828976095/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/4622367807828976095?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/4622367807828976095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/4622367807828976095'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/10/springboot-versioning-restful-apis.html' title='SpringBoot - Versioning RESTful APIs '/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvkWLuT6ZhyOOq764DryUAZk3HKMzX3PA934ciOJ3Keh8RgYZyWmYEcfOwyrP8Zb2-WqD2_29IdPcCp3ovI6T9XEp-ViKJqK3OhnJl5D2BCny-XNP8RaFHUoiKEw7Q09RJIa2q-Xv8HarassdZQWghG7pZa10vDQDfjkfiCzhwo9aY2fCcA6O9Rx-LcC2N/s72-w640-h196-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-8908827642429702477</id><published>2023-09-07T16:56:00.001+01:00</published><updated>2023-09-07T16:56:48.030+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CompletableFuture"/><category scheme="http://www.blogger.com/atom/ns#" term="Rest API"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Webflux"/><title type='text'>Create API request in parallel using Spring Webflux + Rest Template + Completablefuture</title><content type='html'>&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Spring Webflux&lt;/li&gt;&lt;li&gt;Spring Completablefuture function&lt;/li&gt;&lt;li&gt;Rest Template&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfhvC1MjFRfx06Xd7U78Bs_tdRkUrJQa6cFQMKgY5cP965AYocMkow1PtOjW-UWJSdVFrKctxEVdoBXDQDEcNiWzjdJhgZ4zy-v2QoLnq7YhW1fLNOVq38TaZiItzeiizAnZZ1cNtB5AaOhSSZFUNmQgYbqfGG3PGBBYz9TZIhjwWCuDfj3nZuATM-fdgJ/s842/flux4.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;585&quot; data-original-width=&quot;842&quot; height=&quot;444&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfhvC1MjFRfx06Xd7U78Bs_tdRkUrJQa6cFQMKgY5cP965AYocMkow1PtOjW-UWJSdVFrKctxEVdoBXDQDEcNiWzjdJhgZ4zy-v2QoLnq7YhW1fLNOVq38TaZiItzeiizAnZZ1cNtB5AaOhSSZFUNmQgYbqfGG3PGBBYz9TZIhjwWCuDfj3nZuATM-fdgJ/w640-h444/flux4.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNOqqV-SEY_IiQkkt5D_Lt9eK3z-awLvHKJkg66RPYfiBE2qnQr4vxOjSfu744toypXLK1lvFXdu-mvuvXU75T-3CJvAuV9dRe60fvET1sPOn1mGve5eGZu90AVQlMzZRxYHXaM1PsHPvNWiAi1nrZ_shxxzuww-FkblusVE9ed5BIaa1wfQb7LuATOs8C/s836/flux1.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;836&quot; data-original-width=&quot;724&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNOqqV-SEY_IiQkkt5D_Lt9eK3z-awLvHKJkg66RPYfiBE2qnQr4vxOjSfu744toypXLK1lvFXdu-mvuvXU75T-3CJvAuV9dRe60fvET1sPOn1mGve5eGZu90AVQlMzZRxYHXaM1PsHPvNWiAi1nrZ_shxxzuww-FkblusVE9ed5BIaa1wfQb7LuATOs8C/w554-h640/flux1.JPG&quot; width=&quot;554&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinGFclm_QToaLBeiOH73gvEV2MGp1fkWde6ShdwFzvB-51CDXMfG-SgDayE7wYPIfHlmx_Nm6AiJuTH9g4xTjXbqFACJqFag0hsH46r9FeXb7qS-UTDyvhKNozfr1VOUxBwq2d5Ri3BxFB_oytVXJ7cEE565giFsa7V_e8iYmNYdaNhT4my7kHoaU4Sj_H/s800/flux2.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;790&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinGFclm_QToaLBeiOH73gvEV2MGp1fkWde6ShdwFzvB-51CDXMfG-SgDayE7wYPIfHlmx_Nm6AiJuTH9g4xTjXbqFACJqFag0hsH46r9FeXb7qS-UTDyvhKNozfr1VOUxBwq2d5Ri3BxFB_oytVXJ7cEE565giFsa7V_e8iYmNYdaNhT4my7kHoaU4Sj_H/w632-h640/flux2.JPG&quot; width=&quot;632&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtB0fltdellmF-Hbnbvdi3cyCP0L_1koYGrfWvDV0De1kaPSpMSp6-r6-cONgVz9XoqAyQDrWcOqTt0YOpJBTAFVH6gbAdnk78Dv_Vc6iomj-K6mTAqW3iGI17zkw_NnJWKI0PHoJt_WUGbqb-UrS7JKsw_a8qNZ4qV9bwWdHJYJhAguVERXlun3JtqsxJ/s762/flux3.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;546&quot; data-original-width=&quot;762&quot; height=&quot;458&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtB0fltdellmF-Hbnbvdi3cyCP0L_1koYGrfWvDV0De1kaPSpMSp6-r6-cONgVz9XoqAyQDrWcOqTt0YOpJBTAFVH6gbAdnk78Dv_Vc6iomj-K6mTAqW3iGI17zkw_NnJWKI0PHoJt_WUGbqb-UrS7JKsw_a8qNZ4qV9bwWdHJYJhAguVERXlun3JtqsxJ/w640-h458/flux3.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Link&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Github&lt;/b&gt;: &lt;a href=&quot;https://github.com/ashraphs/research-springboot/tree/dev/parallel-api-calling&quot; target=&quot;_blank&quot;&gt;https://github.com/ashraphs/research-springboot/tree/dev/parallel-&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;api-calling&lt;/a&gt;&lt;p&gt;&lt;b&gt;Source&lt;/b&gt;:&amp;nbsp;&lt;a href=&quot;https://medium.com/@amirasyraf32/how-i-create-api-request-in-parallel-using-spring-webflux-rest-template-completablefuture-3c3a304e9880&quot; target=&quot;_blank&quot;&gt;medium.com/@amirasyraf32&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/8908827642429702477/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/8908827642429702477?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/8908827642429702477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/8908827642429702477'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/09/create-api-request-in-parallel-using.html' title='Create API request in parallel using Spring Webflux + Rest Template + Completablefuture'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfhvC1MjFRfx06Xd7U78Bs_tdRkUrJQa6cFQMKgY5cP965AYocMkow1PtOjW-UWJSdVFrKctxEVdoBXDQDEcNiWzjdJhgZ4zy-v2QoLnq7YhW1fLNOVq38TaZiItzeiizAnZZ1cNtB5AaOhSSZFUNmQgYbqfGG3PGBBYz9TZIhjwWCuDfj3nZuATM-fdgJ/s72-w640-h444-c/flux4.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-3130278636560834635</id><published>2023-05-22T15:59:00.002+01:00</published><updated>2023-05-22T15:59:22.742+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CompletableFuture"/><category scheme="http://www.blogger.com/atom/ns#" term="ExecutorService"/><title type='text'>CompletableFuture and ExecutorService</title><content type='html'>CompletableFuture and ExecutorService&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ExecutorService
&lt;pre class=&quot;brush: java&quot;&gt;public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService executor = Executors.newFixedThreadPool(3);
        Future&lt;integer&gt; futureResult = executor.submit(new Add(10, 20)); // 1
        Integer intermediateResult = futureResult.get(); // 2
        Future&lt;integer&gt; finalResult = executor.submit(new Multiply(intermediateResult)); // 3
        System.out.println(finalResult.get());
        executor.shutdown();
    }
&lt;/integer&gt;&lt;/integer&gt;&lt;/pre&gt;
CompletableFuture&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&amp;nbsp;
&lt;pre class=&quot;brush: java&quot;&gt;public static void main(String[] args) throws ExecutionException, InterruptedException {
    Integer finalResult = CompletableFuture.supplyAsync(() -&amp;gt; add(10, 20))
            .thenApplyAsync(result -&amp;gt; multiply(result))
            .get();
    System.out.println(finalResult);
}
public static Integer add(int a, int b) {
    return a + b;

}
public static Integer multiply(int result) {
    return result * 15;
}
&lt;/pre&gt;
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/@anil.java.story/why-have-a-completefuture-when-we-have-an-executorservice-which-problem-did-it-solve-f1cf083f834c&quot; target=&quot;_blank&quot;&gt;medium.com/@anil.java.story&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/3130278636560834635/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/3130278636560834635?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/3130278636560834635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/3130278636560834635'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/05/completablefuture-and-executorservice.html' title='CompletableFuture and ExecutorService'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-2311059827631962597</id><published>2023-05-22T15:00:00.005+01:00</published><updated>2023-05-22T15:00:25.795+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ActiveMQ"/><category scheme="http://www.blogger.com/atom/ns#" term="Apache Kafka"/><category scheme="http://www.blogger.com/atom/ns#" term="RabbitMQ"/><title type='text'>RabbitMQ, Apache Kafka, and ActiveMQ</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
RabbitMQ, Apache Kafka, and ActiveMQ&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlF_qhI6_Yngz4la286HmY90dsxl0P1aIJqTQ7nm3nJpzRNAi7tzszwwnQ4pyjcF-auI4KO12lMU3nNKenizf8l3oP0wna_Jp1XSP9NN6_Xj5k4hNSsLh1CVZM1d3bPZ6hulLB8ntJsldsWdcDmb88F8vkKgYAbalpSRP5wUN9-i50S6qspwpaKarEdQ/s985/rabbit.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;571&quot; data-original-width=&quot;985&quot; height=&quot;372&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlF_qhI6_Yngz4la286HmY90dsxl0P1aIJqTQ7nm3nJpzRNAi7tzszwwnQ4pyjcF-auI4KO12lMU3nNKenizf8l3oP0wna_Jp1XSP9NN6_Xj5k4hNSsLh1CVZM1d3bPZ6hulLB8ntJsldsWdcDmb88F8vkKgYAbalpSRP5wUN9-i50S6qspwpaKarEdQ/w640-h372/rabbit.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/javarevisited/difference-between-rabbitmq-apache-kafka-and-activemq-65e26b923114&quot; target=&quot;_blank&quot;&gt;medium.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/2311059827631962597/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/2311059827631962597?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/2311059827631962597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/2311059827631962597'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/05/rabbitmq-apache-kafka-and-activemq.html' title='RabbitMQ, Apache Kafka, and ActiveMQ'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlF_qhI6_Yngz4la286HmY90dsxl0P1aIJqTQ7nm3nJpzRNAi7tzszwwnQ4pyjcF-auI4KO12lMU3nNKenizf8l3oP0wna_Jp1XSP9NN6_Xj5k4hNSsLh1CVZM1d3bPZ6hulLB8ntJsldsWdcDmb88F8vkKgYAbalpSRP5wUN9-i50S6qspwpaKarEdQ/s72-w640-h372-c/rabbit.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-6028656629338802245</id><published>2023-04-11T12:00:00.002+01:00</published><updated>2023-04-11T12:14:59.301+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android: Update activity with android:exported</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;I have this error in my Android Apllication and I found this solution......&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5xQfrwnsdP_R_EF_2HwwSZll9JqcFOS4FvtIxVovKRLk3MYdO96MWszdpq0j-iWb5NuB-l-7-yt0Wzn00svq8yRyYdwj2qEAlBidKnTVT0UtVo58fVI3CjAJ0JBje-qcqxVVChcWUwL99WFaLpTlZJ3vpV_6lcf3PuAB0YAAWM6mcfdSLY9bNtPSiQg/s1048/info1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;388&quot; data-original-width=&quot;1048&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5xQfrwnsdP_R_EF_2HwwSZll9JqcFOS4FvtIxVovKRLk3MYdO96MWszdpq0j-iWb5NuB-l-7-yt0Wzn00svq8yRyYdwj2qEAlBidKnTVT0UtVo58fVI3CjAJ0JBje-qcqxVVChcWUwL99WFaLpTlZJ3vpV_6lcf3PuAB0YAAWM6mcfdSLY9bNtPSiQg/w640-h236/info1.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;I’ve got every activity, service, and receiver setting the android:exported attribute and I’m still seeing the same error&lt;br /&gt;&lt;br /&gt;This also happened to me.&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;If your using external libraries that add any of these components to your Manifest file and they aren’t prepared for this new rule you’ll need to add them individually.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRTztMl-Z5EaBTvyXeaj8JrofkP6Zx5CyNyI72Dgva-1lrKrPSvTrucxzMiD1FzGp8KCYx9CPQLiiHjaWRPwjyj8P6ngP2Cz3pJkYMqgVXhYJMzLL_amfVQ0YbjawrgxtJ6J6BSysMxZT5WjjUyIQGh7nzO8NqDfq0IVgjkCwNoIRmrTN8wC8j-KARUA/s982/info2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;422&quot; data-original-width=&quot;982&quot; height=&quot;276&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRTztMl-Z5EaBTvyXeaj8JrofkP6Zx5CyNyI72Dgva-1lrKrPSvTrucxzMiD1FzGp8KCYx9CPQLiiHjaWRPwjyj8P6ngP2Cz3pJkYMqgVXhYJMzLL_amfVQ0YbjawrgxtJ6J6BSysMxZT5WjjUyIQGh7nzO8NqDfq0IVgjkCwNoIRmrTN8wC8j-KARUA/w640-h276/info2.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhps0aYPY38_SehpwIIDCd0Ht5mRunYXG-u3Ei2hcZjGI8dpt90pB_nwGt3QRaQc9ZYD_FsyGpCQjeO9xuPAgSOBRiEPz5_W7qXdzHCiL6wirYpnKvF2ogsdNtU39qtT7sJFwuS3ywEelqkW46DX77Zla5WaNjrakExxG0uh2F3ikFzQqcdarySG9MQ/s1002/info3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;337&quot; data-original-width=&quot;1002&quot; height=&quot;216&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhps0aYPY38_SehpwIIDCd0Ht5mRunYXG-u3Ei2hcZjGI8dpt90pB_nwGt3QRaQc9ZYD_FsyGpCQjeO9xuPAgSOBRiEPz5_W7qXdzHCiL6wirYpnKvF2ogsdNtU39qtT7sJFwuS3ywEelqkW46DX77Zla5WaNjrakExxG0uh2F3ikFzQqcdarySG9MQ/w640-h216/info3.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://cafonsomota.medium.com/android-12-dont-forget-to-set-android-exported-on-your-activities-services-and-receivers-3bee33f37beb&quot; target=&quot;_blank&quot;&gt;cafonsomota.medium.com&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/6028656629338802245/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/6028656629338802245?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/6028656629338802245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/6028656629338802245'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/04/android-update-activitys-with.html' title='Android: Update activity with android:exported'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5xQfrwnsdP_R_EF_2HwwSZll9JqcFOS4FvtIxVovKRLk3MYdO96MWszdpq0j-iWb5NuB-l-7-yt0Wzn00svq8yRyYdwj2qEAlBidKnTVT0UtVo58fVI3CjAJ0JBje-qcqxVVChcWUwL99WFaLpTlZJ3vpV_6lcf3PuAB0YAAWM6mcfdSLY9bNtPSiQg/s72-w640-h236-c/info1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-4359968022096745013</id><published>2023-03-25T23:05:00.000+00:00</published><updated>2023-03-25T23:05:58.287+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="Error"/><title type='text'>Android Studio error &quot;Installed Build Tools revision 31.0.0 is corrupted&quot;</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;background-color: white; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-size: 15px;&quot;&gt;First of all, I faced this issue in Android Studio 4.2.2 and you do not need to downgrade the SDK build tool from 31 to 30 or change compile SDK version.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;The main problem is the two files missing in SDK build tool 31 that are:&lt;/p&gt;&lt;ol style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; list-style-image: initial; list-style-position: initial; margin: 0px 0px 1.1em 30px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;--_pr-blockquote-mt: calc(1.1em / 2); --_pr-img-mb: 0; border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px calc(0.55em); overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;em style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;dx.bat&lt;/em&gt;&lt;/li&gt;&lt;li style=&quot;--_pr-blockquote-mt: calc(1.1em / 2); --_pr-img-mb: 0; border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;em style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;dx.jar&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;The solution is that these files are named d8 in the file location so changing their name to dx will solve the error.&lt;/p&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;The steps are below.&lt;/p&gt;&lt;h2 style=&quot;--_pr-code-fs: 0.9em; background-color: white; border: 0px; box-sizing: inherit; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-h2-fs); font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; font-weight: 400; line-height: 1.3; margin: 1.667em 0px 0.7em; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;For Windows&lt;/h2&gt;&lt;ol style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; list-style-image: initial; list-style-position: initial; margin: 0px 0px 1.1em 30px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;--_pr-blockquote-mt: calc(1.1em / 2); --_pr-img-mb: 0; border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px calc(0.55em); overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;p style=&quot;--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; cursor: auto; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px calc(0.55em); padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;go to the location&lt;/p&gt;&lt;pre class=&quot;default s-code-block&quot; style=&quot;--_cb-line-numbers-bg: var(--black-050); background-color: var(--highlight-bg); border-radius: var(--br-md); border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--fs-body1); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: var(--lh-md); margin-bottom: 0px; margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: var(--su12); vertical-align: baseline; width: auto;&quot;&gt;&lt;code class=&quot;hljs language-bash&quot; style=&quot;background-color: transparent; border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-code-fs); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt; &lt;span class=&quot;hljs-string&quot; style=&quot;border: 0px; box-sizing: inherit; color: var(--highlight-variable); font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;&quot;C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li style=&quot;--_pr-blockquote-mt: calc(1.1em / 2); --_pr-img-mb: 0; border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px calc(0.55em); overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;p style=&quot;--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; cursor: auto; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;find a file named d8.bat. This is a Windows batch file.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;--_pr-blockquote-mt: calc(1.1em / 2); --_pr-img-mb: 0; border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px calc(0.55em); overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;p style=&quot;--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; cursor: auto; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;rename d8.bat to dx.bat.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;--_pr-blockquote-mt: calc(1.1em / 2); --_pr-img-mb: 0; border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px calc(0.55em); overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;p style=&quot;--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; cursor: auto; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;in the folder lib (&quot;C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0\lib&quot;)&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;--_pr-blockquote-mt: calc(1.1em / 2); --_pr-img-mb: 0; border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;p style=&quot;--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; cursor: auto; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;rename d8.jar to dx.jar&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;Remember AppData is a hidden folder. Turn on hidden items to see the AppData folder.&lt;/p&gt;&lt;h2 style=&quot;--_pr-code-fs: 0.9em; background-color: white; border: 0px; box-sizing: inherit; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-h2-fs); font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; font-weight: 400; line-height: 1.3; margin: 1.667em 0px 0.7em; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;For macOS or Linux&lt;/h2&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;Run the following in the Terminal:&lt;/p&gt;&lt;pre class=&quot;lang-bash s-code-block&quot; style=&quot;--_cb-line-numbers-bg: var(--black-050); border-radius: var(--br-md); border: 0px; box-sizing: inherit; color: var(--highlight-color); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--fs-body1); font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: var(--lh-md); margin-bottom: calc(1.5em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: var(--su12); vertical-align: baseline; width: auto;&quot;&gt;&lt;code class=&quot;hljs language-bash&quot; style=&quot;border: 0px; box-sizing: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-code-fs); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;border: 0px; box-sizing: inherit; color: var(--highlight-comment); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;# change below to your Android SDK path&lt;/span&gt;
&lt;span class=&quot;hljs-built_in&quot; style=&quot;border: 0px; box-sizing: inherit; color: var(--highlight-literal); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;cd&lt;/span&gt; ~/Library/Android/sdk/build-tools/31.0.0 \
  &amp;amp;&amp;amp; &lt;span class=&quot;hljs-built_in&quot; style=&quot;border: 0px; box-sizing: inherit; color: var(--highlight-literal); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;mv&lt;/span&gt; d8 dx \
  &amp;amp;&amp;amp; &lt;span class=&quot;hljs-built_in&quot; style=&quot;border: 0px; box-sizing: inherit; color: var(--highlight-literal); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;cd&lt;/span&gt; lib  \
  &amp;amp;&amp;amp; &lt;span class=&quot;hljs-built_in&quot; style=&quot;border: 0px; box-sizing: inherit; color: var(--highlight-literal); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;mv&lt;/span&gt; d8.jar dx.jar&lt;/span&gt;&lt;/code&gt;&lt;code class=&quot;hljs language-bash&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-code-fs); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;Now run your project.&lt;/p&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;--_pr-img-mb: 0; background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #232629; cursor: auto; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px; padding: 0px; user-select: text !important; vertical-align: baseline;&quot;&gt;Source:&amp;nbsp;&lt;a href=&quot;http://stackoverflow.com&quot; target=&quot;_blank&quot;&gt;https://stackoverflow.com/questions/68387270/android-studio-error-installed-build-tools-revision-31-0-0-is-corrupted&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/4359968022096745013/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/4359968022096745013?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/4359968022096745013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/4359968022096745013'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/03/android-studio-error-installed-build.html' title='Android Studio error &quot;Installed Build Tools revision 31.0.0 is corrupted&quot;'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-3806529821338587852</id><published>2023-02-17T15:42:00.002+00:00</published><updated>2023-02-17T15:42:37.489+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot Admin"/><title type='text'>Spring Boot Admin Service</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div&gt;Spring Boot Admin&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsP-bvWC_AVdUtrvzZ8JiY6Twqm9JX2rIKwjIq45ju0cGbr4R2uGCo8qUgwWAx-dO1DSyOa02o4Vl_XFQsvu7MnFQiA3Z5cZY2IGHq-0KrPbR6Ka1IQ8j4ySmk0pCVVDH5YP6eScAFwunwn1c9Evtz4xyfMaqD_6T-4o-j698fdriYCqYieF6YhgSGUg/s828/admin1.webp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;471&quot; data-original-width=&quot;828&quot; height=&quot;364&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsP-bvWC_AVdUtrvzZ8JiY6Twqm9JX2rIKwjIq45ju0cGbr4R2uGCo8qUgwWAx-dO1DSyOa02o4Vl_XFQsvu7MnFQiA3Z5cZY2IGHq-0KrPbR6Ka1IQ8j4ySmk0pCVVDH5YP6eScAFwunwn1c9Evtz4xyfMaqD_6T-4o-j698fdriYCqYieF6YhgSGUg/w640-h364/admin1.webp&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEdy0BaZP_KrL8VmwZdWAnvX1kh-IkPCFDZ65YHJbuknBOcaSHSVinG2AgUuNxVWUdNSfRqa9ICWM94Tm4lxRJTPBULAA9h6eoEl7h6LIRbSUAXpPPf3H5aliCg1cmtBE8dYobu-zVT-vIMEp6HTZYuWbMMGvPKhB2J4NbWJXOcjub67LP__Z-8vh83g/s907/admin2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;650&quot; data-original-width=&quot;907&quot; height=&quot;458&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEdy0BaZP_KrL8VmwZdWAnvX1kh-IkPCFDZ65YHJbuknBOcaSHSVinG2AgUuNxVWUdNSfRqa9ICWM94Tm4lxRJTPBULAA9h6eoEl7h6LIRbSUAXpPPf3H5aliCg1cmtBE8dYobu-zVT-vIMEp6HTZYuWbMMGvPKhB2J4NbWJXOcjub67LP__Z-8vh83g/w640-h458/admin2.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyxkE0uYekqA3xEm2wcr-cjvE-KMu2Mq0aJZi6iQrUXYtGK-gcM0EZVJ7dWfHg51unPU5t-QLEaTq1l68geHj63o8rVWwEvzsmQSPCINtRYdICUl_J24yGupdvxEZSejgdtQarcFjVMzzukAgDI_khVpL3oHSEz9OAtShz_pSGn8zk1fLp-uflmLMokQ/s920/admin3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;736&quot; data-original-width=&quot;920&quot; height=&quot;512&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyxkE0uYekqA3xEm2wcr-cjvE-KMu2Mq0aJZi6iQrUXYtGK-gcM0EZVJ7dWfHg51unPU5t-QLEaTq1l68geHj63o8rVWwEvzsmQSPCINtRYdICUl_J24yGupdvxEZSejgdtQarcFjVMzzukAgDI_khVpL3oHSEz9OAtShz_pSGn8zk1fLp-uflmLMokQ/w640-h512/admin3.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguM6Z-uQm2hfDdQXtXJDff-qsMQtfl2wksQjAj0IL5aOtQvaE_c_Mnqn0a2oUTmjr31hDx5Yg6Lv_NitSNEXm7Xzmag7RYEOmwhsAev1cFrDnKqRY3mrb16OMxNK80QHaZBdvwgUzqJndNvNmMP3qO5BTx9qZSYjjbUtE3Loma_X2cE_cQoYEuVdKvqQ/s1400/admin4.webp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;717&quot; data-original-width=&quot;1400&quot; height=&quot;328&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguM6Z-uQm2hfDdQXtXJDff-qsMQtfl2wksQjAj0IL5aOtQvaE_c_Mnqn0a2oUTmjr31hDx5Yg6Lv_NitSNEXm7Xzmag7RYEOmwhsAev1cFrDnKqRY3mrb16OMxNK80QHaZBdvwgUzqJndNvNmMP3qO5BTx9qZSYjjbUtE3Loma_X2cE_cQoYEuVdKvqQ/w640-h328/admin4.webp&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;Source:&amp;nbsp;&lt;a href=&quot;https://gitstacks.com/java-spring-boot-admin-service-871e25fa1fa4&quot; target=&quot;_blank&quot;&gt;gitstacks.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/3806529821338587852/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/3806529821338587852?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/3806529821338587852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/3806529821338587852'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/02/spring-boot-admin-service.html' title='Spring Boot Admin Service'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsP-bvWC_AVdUtrvzZ8JiY6Twqm9JX2rIKwjIq45ju0cGbr4R2uGCo8qUgwWAx-dO1DSyOa02o4Vl_XFQsvu7MnFQiA3Z5cZY2IGHq-0KrPbR6Ka1IQ8j4ySmk0pCVVDH5YP6eScAFwunwn1c9Evtz4xyfMaqD_6T-4o-j698fdriYCqYieF6YhgSGUg/s72-w640-h364-c/admin1.webp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-5839181503491871737</id><published>2023-02-15T12:22:00.002+00:00</published><updated>2023-02-15T12:25:39.413+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Python Basic concepts Complete Guide</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi077_JVTsO5-ZeQQDMaB0q58bvz3MxA0n9JjgQJcnh4Nl4wp3LDY3kSyQ7wqq9aBiryvvmQQMlQCQIe2jgcshP8-Nnt0B4aPNCbUYLYnohTr9TlRh5nABW5IbgEioJkwi_z_1xuR62yhBpD6s_t4kqn_6vF_v1PrM8WngkSO0ZWOQSAfjLzgq8rZJzQg/s828/python.webp&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;511&quot; data-original-width=&quot;828&quot; height=&quot;394&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi077_JVTsO5-ZeQQDMaB0q58bvz3MxA0n9JjgQJcnh4Nl4wp3LDY3kSyQ7wqq9aBiryvvmQQMlQCQIe2jgcshP8-Nnt0B4aPNCbUYLYnohTr9TlRh5nABW5IbgEioJkwi_z_1xuR62yhBpD6s_t4kqn_6vF_v1PrM8WngkSO0ZWOQSAfjLzgq8rZJzQg/w640-h394/python.webp&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;a href=&quot;https://medium.com/@toimrank/python-file-i-o-41d73bb7867e&quot;&gt;File I/O&lt;/a&gt; test&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj76_dpjZi4QBpJnhRvtoJzDnmqS2mEryUzonZ0MEEwduWBCnmVtlQxzbvHEBrcWjA-6xq_euTGP81TliVLth_LhZ3lpiTrA4aMef4DQx3MIKUm1VFIE1tvN0jztSU7gQKQD0GIvWXCbA3mL1Oy703ZLMBs_2SChLxjWfN3TGR02KwS6-oPK4ob3iUavg/s1057/fileio.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;368&quot; data-original-width=&quot;1057&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj76_dpjZi4QBpJnhRvtoJzDnmqS2mEryUzonZ0MEEwduWBCnmVtlQxzbvHEBrcWjA-6xq_euTGP81TliVLth_LhZ3lpiTrA4aMef4DQx3MIKUm1VFIE1tvN0jztSU7gQKQD0GIvWXCbA3mL1Oy703ZLMBs_2SChLxjWfN3TGR02KwS6-oPK4ob3iUavg/w640-h222/fileio.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Python Guide Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/@toimrank/python-basic-concepts-complete-guide-d2153fee558b&quot; target=&quot;_blank&quot;&gt;medium.com/@toimrank&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/5839181503491871737/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/5839181503491871737?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/5839181503491871737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/5839181503491871737'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/02/python-basic-concepts-complete-guide.html' title='Python Basic concepts Complete Guide'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi077_JVTsO5-ZeQQDMaB0q58bvz3MxA0n9JjgQJcnh4Nl4wp3LDY3kSyQ7wqq9aBiryvvmQQMlQCQIe2jgcshP8-Nnt0B4aPNCbUYLYnohTr9TlRh5nABW5IbgEioJkwi_z_1xuR62yhBpD6s_t4kqn_6vF_v1PrM8WngkSO0ZWOQSAfjLzgq8rZJzQg/s72-w640-h394-c/python.webp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-4862617836013476089</id><published>2023-02-15T11:31:00.005+00:00</published><updated>2023-02-15T11:36:40.543+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Email"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Mailgun"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Thymeleaf"/><title type='text'>Email in Spring Boot with Thymeleaf and Mailgun</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizXlapgmZS_ugH1PC1bQD8E7ExFpGfcWJFaqYlzUq5Nt3FJ6UvmJUU9ybNAVYR-zQ20lalih2zG1yCgGFVjZzPLlA-OJb9qvfV2pGxZbCcG1ibdknOKBuj7Tiywex-1JQs3CiPwz27fx_e0qPyB2aJWJnwWmDEOUeV6RSq-PTwH_6EpSFrcRZAHEaw6A/s828/spring.webp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;496&quot; data-original-width=&quot;828&quot; height=&quot;384&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizXlapgmZS_ugH1PC1bQD8E7ExFpGfcWJFaqYlzUq5Nt3FJ6UvmJUU9ybNAVYR-zQ20lalih2zG1yCgGFVjZzPLlA-OJb9qvfV2pGxZbCcG1ibdknOKBuj7Tiywex-1JQs3CiPwz27fx_e0qPyB2aJWJnwWmDEOUeV6RSq-PTwH_6EpSFrcRZAHEaw6A/w640-h384/spring.webp&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvVSe-8sXwlAcE7EOrMTpFr8jSOnJHGwZQSAOJrYyShB12lmxDjVRFhiPj-I-0enZvEoVjU4AFHhxT1gtt0At1I_b3h2B3s0S7tiVXAeBhaqPqh5fL3_YqoYncPRTlYUF-mU9k0y90z3gWelBMRVZEwcIDY1DR3q583YFTPLTR_fqKuQeh_vWEdCc-jg/s829/temoplate.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;775&quot; data-original-width=&quot;829&quot; height=&quot;598&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvVSe-8sXwlAcE7EOrMTpFr8jSOnJHGwZQSAOJrYyShB12lmxDjVRFhiPj-I-0enZvEoVjU4AFHhxT1gtt0At1I_b3h2B3s0S7tiVXAeBhaqPqh5fL3_YqoYncPRTlYUF-mU9k0y90z3gWelBMRVZEwcIDY1DR3q583YFTPLTR_fqKuQeh_vWEdCc-jg/w640-h598/temoplate.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzKR-hJ6vsDUWz-VdnYfZlPJky_V5VW9WoegLOmAe7u0JQEcgpraf-68QYq6fUA9lDFY27kdqTEZKKx0cPR-fpykqQWKY2z125gyPXrCJ0F3qorRGZCFKCtbMIQvpw6ZJNYazjEVLwnqXd0ncHfSwnajN7RXK-x97YbTL64TCegMS8iQTGFpmU4lzEuQ/s692/app.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;176&quot; data-original-width=&quot;692&quot; height=&quot;162&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzKR-hJ6vsDUWz-VdnYfZlPJky_V5VW9WoegLOmAe7u0JQEcgpraf-68QYq6fUA9lDFY27kdqTEZKKx0cPR-fpykqQWKY2z125gyPXrCJ0F3qorRGZCFKCtbMIQvpw6ZJNYazjEVLwnqXd0ncHfSwnajN7RXK-x97YbTL64TCegMS8iQTGFpmU4lzEuQ/w640-h162/app.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimPUCDBQ2CQIEbCHLqYTjGpISiezf8aV9gKW_LktgQss4iGM8e3OKugdQLlxvQ3nATnA5p4Qmvvc1shcmgBbvpsf446i0BDTXTQYZ27i2qMbzmfQB_AtO-RHajHLRDeK_oL9b8_txJBTtNoh65-KDk6cUEnP4qVcHIYoLsSGZKwwnAFqW9YpFDXWdQWA/s840/smtp.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;786&quot; data-original-width=&quot;840&quot; height=&quot;598&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimPUCDBQ2CQIEbCHLqYTjGpISiezf8aV9gKW_LktgQss4iGM8e3OKugdQLlxvQ3nATnA5p4Qmvvc1shcmgBbvpsf446i0BDTXTQYZ27i2qMbzmfQB_AtO-RHajHLRDeK_oL9b8_txJBTtNoh65-KDk6cUEnP4qVcHIYoLsSGZKwwnAFqW9YpFDXWdQWA/w640-h598/smtp.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCWpfrjU--cvRs1FgM9KGjel6gBoJ6qeoLqygFo90S6AL7KAxN2aMB1R3j5b4cY6MojC1UHce1hRlVkFIm_zWHlFleCEK_ZLlV0dATQdHdvEIlKSkzezK3enZiXg_8VWmD2fheTsc5ic8soP2DAHKWTSfWvXk8U0Kx-6IP65P0OC_1Yvk-bX9drkCrxA/s900/controller.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;555&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCWpfrjU--cvRs1FgM9KGjel6gBoJ6qeoLqygFo90S6AL7KAxN2aMB1R3j5b4cY6MojC1UHce1hRlVkFIm_zWHlFleCEK_ZLlV0dATQdHdvEIlKSkzezK3enZiXg_8VWmD2fheTsc5ic8soP2DAHKWTSfWvXk8U0Kx-6IP65P0OC_1Yvk-bX9drkCrxA/w394-h640/controller.PNG&quot; width=&quot;394&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Links&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.mailgun.com/&quot; target=&quot;_blank&quot;&gt;mailgun.com/&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/@tericcabrel/send-email-in-spring-boot-with-thymeleaf-and-mailgun-15e1b9dab328&quot; target=&quot;_blank&quot;&gt;medium.com/@tericcabrel&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/4862617836013476089/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/4862617836013476089?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/4862617836013476089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/4862617836013476089'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/02/email-in-spring-boot-with-thymeleaf-and.html' title='Email in Spring Boot with Thymeleaf and Mailgun'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizXlapgmZS_ugH1PC1bQD8E7ExFpGfcWJFaqYlzUq5Nt3FJ6UvmJUU9ybNAVYR-zQ20lalih2zG1yCgGFVjZzPLlA-OJb9qvfV2pGxZbCcG1ibdknOKBuj7Tiywex-1JQs3CiPwz27fx_e0qPyB2aJWJnwWmDEOUeV6RSq-PTwH_6EpSFrcRZAHEaw6A/s72-w640-h384-c/spring.webp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-8734047903512914960</id><published>2023-01-31T10:33:00.001+00:00</published><updated>2023-01-31T10:33:23.484+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Profiles"/><category scheme="http://www.blogger.com/atom/ns#" term="Properties"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot | Properties and profiles</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;b&gt;Spring Boot | Properties and profiles&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBUQSOFeeg5-rN8dE9QFiw8za7h1eDnNwFXUo0IzxBTjJ4bG1s4p6IEHpkP8csqLrtfdabfGN6GsYzuk8R8pneuzoUkuoCEOsfRmLH873yxdZ-gTsoWm6FtWgUFzgWPJaDhgL88tTlgTqS6tjTNrEId02xbZN6oeIqU58JwglNQP94Xkfrn9INaQSL-g/s657/art1.webp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;354&quot; data-original-width=&quot;657&quot; height=&quot;215&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBUQSOFeeg5-rN8dE9QFiw8za7h1eDnNwFXUo0IzxBTjJ4bG1s4p6IEHpkP8csqLrtfdabfGN6GsYzuk8R8pneuzoUkuoCEOsfRmLH873yxdZ-gTsoWm6FtWgUFzgWPJaDhgL88tTlgTqS6tjTNrEId02xbZN6oeIqU58JwglNQP94Xkfrn9INaQSL-g/w400-h215/art1.webp&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9O-WF2nVgLiUydO2DJFP9ZIbCsBPwv41OoXS6sT6Q_vVgFEbK5ANTspVCwK4OY-eVKfrZShh52ZhCIzaP30vO2txXAZjNM99YvnDiwpfSWdd0u7HzYTMRrrMUcW7YDkXY1KPLr7EFC380U1Q8-cdeC2XXhMi14E9X4vV7PCV3BQp69kAV5QkLVdsBMg/s732/art2.webp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;732&quot; data-original-width=&quot;474&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9O-WF2nVgLiUydO2DJFP9ZIbCsBPwv41OoXS6sT6Q_vVgFEbK5ANTspVCwK4OY-eVKfrZShh52ZhCIzaP30vO2txXAZjNM99YvnDiwpfSWdd0u7HzYTMRrrMUcW7YDkXY1KPLr7EFC380U1Q8-cdeC2XXhMi14E9X4vV7PCV3BQp69kAV5QkLVdsBMg/w259-h400/art2.webp&quot; width=&quot;259&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSCii-UZ_01WyAGoGPhOPBPJ9dp900vBnbLgRqf6QVZsNslORdgEXLLQpyoofcHI8YWEqgiLNRQVcZUSH-U0bmUjFBXIFszqlD_FkG9qRFg9VAUjogyepLyw7oinVlxZFR89dJgG5tPDL4iRrqww-bt1SQwi_9YyuHzYDxMrGB1Gl5O4N8nwj7eXgyDQ/s773/art3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;235&quot; data-original-width=&quot;773&quot; height=&quot;194&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSCii-UZ_01WyAGoGPhOPBPJ9dp900vBnbLgRqf6QVZsNslORdgEXLLQpyoofcHI8YWEqgiLNRQVcZUSH-U0bmUjFBXIFszqlD_FkG9qRFg9VAUjogyepLyw7oinVlxZFR89dJgG5tPDL4iRrqww-bt1SQwi_9YyuHzYDxMrGB1Gl5O4N8nwj7eXgyDQ/w640-h194/art3.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvqWlGMZUdf3yv1eaAAIBXGwJJ9zXNywcAnJj8sFW1gtf1QWUjjBpx0FV7HeyCgLQS2JLHMCuYbQpdt76iaF9QTpEBSerKl2fUoODdsSHxtOjd7F5MbFBWKFjjAlLy1FwlFj9qqtHZsZyVR7kQqtkcCo6J02RqJJ79aoL4BszV7wovQVOY6rQT3-L2gw/s771/art4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;771&quot; data-original-width=&quot;769&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvqWlGMZUdf3yv1eaAAIBXGwJJ9zXNywcAnJj8sFW1gtf1QWUjjBpx0FV7HeyCgLQS2JLHMCuYbQpdt76iaF9QTpEBSerKl2fUoODdsSHxtOjd7F5MbFBWKFjjAlLy1FwlFj9qqtHZsZyVR7kQqtkcCo6J02RqJJ79aoL4BszV7wovQVOY6rQT3-L2gw/w399-h400/art4.PNG&quot; width=&quot;399&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKTpBlydolI9oO46orPN8aov6KHrYoy2GhRkTpCqGkSlS_tM-MfCODrecpcQU88W_g9lrIEF5ydSLWEihkDGChttJ2qf6ZE0bGX_rX6Mp9qAn9U-n1WsWzFEfddMH1xJkO59I1vjzd-yPeTrUDqJ1W9vTqbwqkfwpps2MxXlD3JYPxCxinid2hmhO-2A/s662/art5.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;339&quot; data-original-width=&quot;662&quot; height=&quot;328&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKTpBlydolI9oO46orPN8aov6KHrYoy2GhRkTpCqGkSlS_tM-MfCODrecpcQU88W_g9lrIEF5ydSLWEihkDGChttJ2qf6ZE0bGX_rX6Mp9qAn9U-n1WsWzFEfddMH1xJkO59I1vjzd-yPeTrUDqJ1W9vTqbwqkfwpps2MxXlD3JYPxCxinid2hmhO-2A/w640-h328/art5.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/@stefan.paladuta17/spring-boot-playing-with-properties-and-profiles-1a82727a70fb&quot; target=&quot;_blank&quot;&gt;medium.com/@stefan.paladuta17&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/8734047903512914960/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/8734047903512914960?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/8734047903512914960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/8734047903512914960'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/01/spring-boot-properties-and-profiles.html' title='Spring Boot | Properties and profiles'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBUQSOFeeg5-rN8dE9QFiw8za7h1eDnNwFXUo0IzxBTjJ4bG1s4p6IEHpkP8csqLrtfdabfGN6GsYzuk8R8pneuzoUkuoCEOsfRmLH873yxdZ-gTsoWm6FtWgUFzgWPJaDhgL88tTlgTqS6tjTNrEId02xbZN6oeIqU58JwglNQP94Xkfrn9INaQSL-g/s72-w400-h215-c/art1.webp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-6708781845268499773</id><published>2023-01-16T17:34:00.001+00:00</published><updated>2023-01-16T17:37:20.417+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JDBC"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><title type='text'>Data Ingestion In Plain Java</title><content type='html'>&lt;pre class=&quot;brush: java&quot;&gt;&lt;/pre&gt;
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;i&gt;build simple data ingestion design that will be using simple Java SDK&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;We will Read data from remote sources and write to Database.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNGRZ29Nr26Y0wFLZJv0EKampSjM9GFyyTBoFkTRZeKyT5zzwHtwf5fOuNRyNM4J5dOmo2_zVxpE4UrnaPEfwIQUQTNQCwfDAfoCrcagk88u6zgNIRYURnM9UhWyh-EGqfjfMMBTrawjX1qpIT5KMK2c3HbU3KwLrjqHXbi8Rj04K-7O4yeAwhJXSbiA/s866/jdc1.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;347&quot; data-original-width=&quot;866&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNGRZ29Nr26Y0wFLZJv0EKampSjM9GFyyTBoFkTRZeKyT5zzwHtwf5fOuNRyNM4J5dOmo2_zVxpE4UrnaPEfwIQUQTNQCwfDAfoCrcagk88u6zgNIRYURnM9UhWyh-EGqfjfMMBTrawjX1qpIT5KMK2c3HbU3KwLrjqHXbi8Rj04K-7O4yeAwhJXSbiA/w640-h256/jdc1.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZRDFH2k1hjxMU1q9_70mWBmZlAcGeQ9hSDfWQ6isP0ujEz9bBPViNddz1ItnYkGpeAjTmuOhhrrt4vqLGleKHJA8n0Vvywfj8w5zxdaO7kkJ3AiMH9MzZNjx6Ux4Yoki-TT0ttF6gZ5csDw__WyX_-leF_uxCU9ACOsLd5ZOKGlrzqWOeVzi4xg3qSw/s1101/jdc2.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;870&quot; data-original-width=&quot;1101&quot; height=&quot;506&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZRDFH2k1hjxMU1q9_70mWBmZlAcGeQ9hSDfWQ6isP0ujEz9bBPViNddz1ItnYkGpeAjTmuOhhrrt4vqLGleKHJA8n0Vvywfj8w5zxdaO7kkJ3AiMH9MzZNjx6Ux4Yoki-TT0ttF6gZ5csDw__WyX_-leF_uxCU9ACOsLd5ZOKGlrzqWOeVzi4xg3qSw/w640-h506/jdc2.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxX6g8uA_cJAWAvkqVPQeAl26ZFs-nUUJuntfXRrr0vDoC1ihvBKy6Ja6DGwy0sCa035r2p3yAma8kSYAZ1fMTnwvVayOnAvDXmUIhZjvlv3TPpoFfPKB721yCWJlfQ3fwHL2qjB1ujzJbhaJM7kIs9QCwfTeHt9qwU3773f5tm1ijNPtizsoOjcPpIQ/s978/jdc3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;275&quot; data-original-width=&quot;978&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxX6g8uA_cJAWAvkqVPQeAl26ZFs-nUUJuntfXRrr0vDoC1ihvBKy6Ja6DGwy0sCa035r2p3yAma8kSYAZ1fMTnwvVayOnAvDXmUIhZjvlv3TPpoFfPKB721yCWJlfQ3fwHL2qjB1ujzJbhaJM7kIs9QCwfTeHt9qwU3773f5tm1ijNPtizsoOjcPpIQ/w640-h180/jdc3.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib-_fBFSSQR2akJJeTfYP0791QFk-lBp_jBVEGDp0x8Jo6BoWO24uIV4O9WvnZk3xnrJxalBSnT377apWYqk_R7i-Ede6gDHWI3HT9vahhdlyEct2862d_pBCdtcrA-1bFTju6BMI54Ts7AzVjAWrkycMyIdy70rf_8pTDtz8Po5GdqSBSv50jvndg7g/s679/jdc4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;393&quot; data-original-width=&quot;679&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib-_fBFSSQR2akJJeTfYP0791QFk-lBp_jBVEGDp0x8Jo6BoWO24uIV4O9WvnZk3xnrJxalBSnT377apWYqk_R7i-Ede6gDHWI3HT9vahhdlyEct2862d_pBCdtcrA-1bFTju6BMI54Ts7AzVjAWrkycMyIdy70rf_8pTDtz8Po5GdqSBSv50jvndg7g/w640-h370/jdc4.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://i-sammy.medium.com/data-ingestion-in-plain-java-5ccdbe2a7d12&quot; target=&quot;_blank&quot;&gt;i-sammy.medium.com&lt;/a&gt;&lt;br /&gt;Code:&amp;nbsp;&lt;a href=&quot;https://github.com/imsurajmishra/DataIngestion/tree/d1bb9bcdbd5f0c8b70347f42439ef61ebb24788a&quot; target=&quot;_blank&quot;&gt;github.com/imsurajmishra&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/6708781845268499773/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/6708781845268499773?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/6708781845268499773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/6708781845268499773'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/01/data-ingestion-in-plain-java.html' title='Data Ingestion In Plain Java'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNGRZ29Nr26Y0wFLZJv0EKampSjM9GFyyTBoFkTRZeKyT5zzwHtwf5fOuNRyNM4J5dOmo2_zVxpE4UrnaPEfwIQUQTNQCwfDAfoCrcagk88u6zgNIRYURnM9UhWyh-EGqfjfMMBTrawjX1qpIT5KMK2c3HbU3KwLrjqHXbi8Rj04K-7O4yeAwhJXSbiA/s72-w640-h256-c/jdc1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-115005029237858834</id><published>2023-01-13T09:32:00.001+00:00</published><updated>2023-01-13T09:32:12.818+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Asynchronous"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>How to do Asynchronous Programming With Java</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Using CompletableFuture to implement an asynchronous use case&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj41SXKwwKCt0AVx1R7wz3IhDp4WqoSeocJxVUvk50rDzTt5uMmLNCBxxuTHB0g9-UwH-zE0tYV_UzO3PsSIvZILNQiZC0u2mcvWVL6Ke2iNZLhxBl6Tn6cHG7u8JtpNSwEg059Kr9-NKYoH3g4MF3nOElEC73Bsyn9uOBPU_SpEmXao9QbE2qTQzmTA/s651/async2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;153&quot; data-original-width=&quot;651&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj41SXKwwKCt0AVx1R7wz3IhDp4WqoSeocJxVUvk50rDzTt5uMmLNCBxxuTHB0g9-UwH-zE0tYV_UzO3PsSIvZILNQiZC0u2mcvWVL6Ke2iNZLhxBl6Tn6cHG7u8JtpNSwEg059Kr9-NKYoH3g4MF3nOElEC73Bsyn9uOBPU_SpEmXao9QbE2qTQzmTA/w640-h150/async2.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfntzMj8-LA603YzJl4L0ZGl1Uu6pYB5VmOq_LXzOUKgN43RnsKwDyAmEYH9k8LUKylZj8jfkX7-8bNyvhTFxcK1K5pPmtZw_L5FmLBo4NExPSFEwesE_oD610kUnoUZqbFFCn29kCm0LyzFzsjPW1C2E823ut4tbfyxw_p_9J3yzNBnHa25HanZFlvA/s806/async.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;562&quot; data-original-width=&quot;806&quot; height=&quot;446&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfntzMj8-LA603YzJl4L0ZGl1Uu6pYB5VmOq_LXzOUKgN43RnsKwDyAmEYH9k8LUKylZj8jfkX7-8bNyvhTFxcK1K5pPmtZw_L5FmLBo4NExPSFEwesE_oD610kUnoUZqbFFCn29kCm0LyzFzsjPW1C2E823ut4tbfyxw_p_9J3yzNBnHa25HanZFlvA/w640-h446/async.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/javarevisited/how-to-do-asynchronous-programming-with-java-66bd27ceaf1b&quot; target=&quot;_blank&quot;&gt;medium.com&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/115005029237858834/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/115005029237858834?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/115005029237858834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/115005029237858834'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/01/how-to-do-asynchronous-programming-with.html' title='How to do Asynchronous Programming With Java'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj41SXKwwKCt0AVx1R7wz3IhDp4WqoSeocJxVUvk50rDzTt5uMmLNCBxxuTHB0g9-UwH-zE0tYV_UzO3PsSIvZILNQiZC0u2mcvWVL6Ke2iNZLhxBl6Tn6cHG7u8JtpNSwEg059Kr9-NKYoH3g4MF3nOElEC73Bsyn9uOBPU_SpEmXao9QbE2qTQzmTA/s72-w640-h150-c/async2.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-1819212493330990390</id><published>2023-01-11T11:44:00.002+00:00</published><updated>2023-01-11T11:44:23.204+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Authentication"/><category scheme="http://www.blogger.com/atom/ns#" term="JWT"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Security"/><title type='text'>Spring Boot 3 + Spring Security 6 - JWT Authentication and Authorisation</title><content type='html'>Spring Boot 3 + Spring Security 6 - JWT Authentication and Authorisation&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;div align=&quot;center&quot;&gt;
&lt;iframe allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/KxqlJblhzfI&quot; title=&quot;YouTube video player&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/@amigoscode&quot; target=&quot;_blank&quot;&gt;@amigoscode&lt;/a&gt;&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/1819212493330990390/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/1819212493330990390?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/1819212493330990390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/1819212493330990390'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/01/spring-boot-3-spring-security-6-jwt.html' title='Spring Boot 3 + Spring Security 6 - JWT Authentication and Authorisation'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/KxqlJblhzfI/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-1415842851175466120</id><published>2023-01-09T14:30:00.000+00:00</published><updated>2023-01-09T14:30:02.526+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CachedRowSet"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JDBC"/><category scheme="http://www.blogger.com/atom/ns#" term="ResultSet"/><title type='text'>Using CachedRowSet in JDBC</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Understanding RowSet&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;A row set contains all data from a result set, but it can be disconnected from the database. A row set may make a connection with a database and keep the connection open during its life cycle, in which case it is called connected row set.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Understanding CachedRowSet&lt;/b&gt;&lt;div&gt;A &lt;span style=&quot;background-color: #fcff01;&quot;&gt;CachedRowSet &lt;/span&gt;object is a container for rows of data that caches its rows in memory, which makes it possible to operate (scroll and update) without keeping the database connection open all the time.&lt;/div&gt;&lt;br /&gt;A &lt;span style=&quot;background-color: #fcff01;&quot;&gt;CachedRowSet &lt;/span&gt;object makes use of a connection to the database only briefly: while it is reading data to populate itself with rows, and again while it is committing changes to the underlying database. So the rest of the time, a CachedRowSet object is disconnected, even while its data is being modified. Hence it is called disconnected row set.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2NI6dikOZGUvXJOqmnonLS_blBqA31pkqjLCptzGw8kQBY4HhpsMCvFIEcwVqDAuhovZ_FF1RrWSRbqOfN7wnBnjOwez5VIOzROAk-jPWD03rRuNMXIiXtc-ez2OzXgVUNuQE9QBtnvvl3S4gxx_29yYqlPGprSCm-4CVTBbn12NtBdrFxZxwzQBT3w/s614/capt1.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;143&quot; data-original-width=&quot;614&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2NI6dikOZGUvXJOqmnonLS_blBqA31pkqjLCptzGw8kQBY4HhpsMCvFIEcwVqDAuhovZ_FF1RrWSRbqOfN7wnBnjOwez5VIOzROAk-jPWD03rRuNMXIiXtc-ez2OzXgVUNuQE9QBtnvvl3S4gxx_29yYqlPGprSCm-4CVTBbn12NtBdrFxZxwzQBT3w/w640-h150/capt1.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2-WcuKc6sR07sB-yMGFT4IfjZy0lxTJzYdOAZwNsA3Ga2SRME8_E9e1J8OfMIGkEe4DqHa8WzwSvLDbeBr61lFtZSiUPJ0htYyfZxtLhrOFXuG6XidOJYa6z1qffkMOewG_LGucXXa_t-SfHDWmEsfvJIPZ3TqB9z2A6PjrpU2H9L5Hk25D4rcuyhw/s671/capt2.PNG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;213&quot; data-original-width=&quot;671&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2-WcuKc6sR07sB-yMGFT4IfjZy0lxTJzYdOAZwNsA3Ga2SRME8_E9e1J8OfMIGkEe4DqHa8WzwSvLDbeBr61lFtZSiUPJ0htYyfZxtLhrOFXuG6XidOJYa6z1qffkMOewG_LGucXXa_t-SfHDWmEsfvJIPZ3TqB9z2A6PjrpU2H9L5Hk25D4rcuyhw/w640-h204/capt2.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Source&lt;/b&gt;:&amp;nbsp;&lt;a href=&quot;https://www.codejava.net/java-se/jdbc/how-to-use-cachedrowset-in-jdbc&quot; target=&quot;_blank&quot;&gt;codejava.net&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/1415842851175466120/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/1415842851175466120?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/1415842851175466120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/1415842851175466120'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2023/01/using-cachedrowset-in-jdbc.html' title='Using CachedRowSet in JDBC'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2NI6dikOZGUvXJOqmnonLS_blBqA31pkqjLCptzGw8kQBY4HhpsMCvFIEcwVqDAuhovZ_FF1RrWSRbqOfN7wnBnjOwez5VIOzROAk-jPWD03rRuNMXIiXtc-ez2OzXgVUNuQE9QBtnvvl3S4gxx_29yYqlPGprSCm-4CVTBbn12NtBdrFxZxwzQBT3w/s72-w640-h150-c/capt1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-2243005746926325258</id><published>2022-12-20T17:11:00.003+00:00</published><updated>2022-12-20T17:11:27.797+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Exception"/><category scheme="http://www.blogger.com/atom/ns#" term="Rest API"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring-Retry"/><title type='text'>How To retry Third-party API Elegantly in Spring Boot</title><content type='html'>&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSZWFMfRRrV1XfcU7nUjmxapaoxUMWgUhy32O0BsXeicw5X3P-9QP_P8wyycwg5LVY72J-WdWUA1f4aXQL4xkc2MRTgi5S2_bcIkMUdzm4PPLDc9tpvv-0czySGTOohiZqWxoIEhK8EBgqKgSr4D8MuLPWDpX9b548qCG11rh9hqWKp9ifWOwMD5ybdw/s751/pom.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;277&quot; data-original-width=&quot;751&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSZWFMfRRrV1XfcU7nUjmxapaoxUMWgUhy32O0BsXeicw5X3P-9QP_P8wyycwg5LVY72J-WdWUA1f4aXQL4xkc2MRTgi5S2_bcIkMUdzm4PPLDc9tpvv-0czySGTOohiZqWxoIEhK8EBgqKgSr4D8MuLPWDpX9b548qCG11rh9hqWKp9ifWOwMD5ybdw/w640-h236/pom.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj06dA4SPIxP8bTtvVfcYz8XiBDFhEo5XQsPAEOMoB4GiY_Uxdw344QNNf-NoBqonykGra7OChi-kCN45awDGQfpeYE_V5W4F-HV8z7tNBBx-CxH6GwO33AdZB1guDpEU2AtCnwKK5z2vtLoyEIknmKxkVIJ0K3gWeDdxoWaXGoDf6Vn48CA58Gt7gqtQ/s766/enable.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;464&quot; data-original-width=&quot;766&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj06dA4SPIxP8bTtvVfcYz8XiBDFhEo5XQsPAEOMoB4GiY_Uxdw344QNNf-NoBqonykGra7OChi-kCN45awDGQfpeYE_V5W4F-HV8z7tNBBx-CxH6GwO33AdZB1guDpEU2AtCnwKK5z2vtLoyEIknmKxkVIJ0K3gWeDdxoWaXGoDf6Vn48CA58Gt7gqtQ/w640-h388/enable.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhytVcUfQ5Ao5xfTEArV_mWhCHFN3m-e-WuCx09aeRrfzfto5OxXvnlQCC7nT3JPsC9np9B5nGYMZIhH_wKtD_qZSX42hDHEsWRGY2EkjrDeK9bx5nf9x2S5pnJ9p1tm1muNV9ak65_bA2tFpW1lJtBHT5PdDtvHTuZArvSkjFN4HUy4FTolYnCWyzUdw/s812/using.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;531&quot; data-original-width=&quot;812&quot; height=&quot;418&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhytVcUfQ5Ao5xfTEArV_mWhCHFN3m-e-WuCx09aeRrfzfto5OxXvnlQCC7nT3JPsC9np9B5nGYMZIhH_wKtD_qZSX42hDHEsWRGY2EkjrDeK9bx5nf9x2S5pnJ9p1tm1muNV9ak65_bA2tFpW1lJtBHT5PdDtvHTuZArvSkjFN4HUy4FTolYnCWyzUdw/w640-h418/using.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More info in&amp;nbsp;&lt;a href=&quot;https://github.com/spring-projects/spring-retry&quot;&gt;https://github.com/spring-projects/spring-retry&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source:&amp;nbsp;&lt;a href=&quot;https://medium.com/@malvin.lok/how-to-retry-third-party-api-elegantly-in-spring-boot-9c1f8a4ce969&quot;&gt;medium.com/@malvin.lok/&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/2243005746926325258/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/2243005746926325258?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/2243005746926325258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/2243005746926325258'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2022/12/how-to-retry-third-party-api-elegantly.html' title='How To retry Third-party API Elegantly in Spring Boot'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSZWFMfRRrV1XfcU7nUjmxapaoxUMWgUhy32O0BsXeicw5X3P-9QP_P8wyycwg5LVY72J-WdWUA1f4aXQL4xkc2MRTgi5S2_bcIkMUdzm4PPLDc9tpvv-0czySGTOohiZqWxoIEhK8EBgqKgSr4D8MuLPWDpX9b548qCG11rh9hqWKp9ifWOwMD5ybdw/s72-w640-h236-c/pom.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-2944116488503922371</id><published>2022-12-07T13:48:00.004+00:00</published><updated>2022-12-07T13:48:52.165+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JWT"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Security"/><title type='text'>Spring Security Tutorial</title><content type='html'>About:&amp;nbsp;&lt;div&gt;Spring Security is a powerful and popular framework for securing Java applications. In this video, we&#39;ll show you how to get started with Spring Security, by creating a simple authentication system using basic auth and JWT.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&amp;nbsp;


&lt;div align=&quot;center&quot;&gt;&lt;iframe allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/b9O9NI-RJ3o&quot; title=&quot;YouTube video player&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/2944116488503922371/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/2944116488503922371?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/2944116488503922371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/2944116488503922371'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2022/12/spring-security-tutorial.html' title='Spring Security Tutorial'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/b9O9NI-RJ3o/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5899469145641542907.post-8220553518419235163</id><published>2022-11-11T17:38:00.002+00:00</published><updated>2022-11-11T17:38:22.771+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Functional Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java8"/><title type='text'>Functional Programming Patterns with Java8 by Victor Rentea</title><content type='html'>
&lt;div align=&quot;center&quot;&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/YnzisJh-ZNI&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://lopestech.blogspot.com/feeds/8220553518419235163/comments/default' title='Enviar feedback'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5899469145641542907/8220553518419235163?isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/8220553518419235163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5899469145641542907/posts/default/8220553518419235163'/><link rel='alternate' type='text/html' href='http://lopestech.blogspot.com/2022/11/functional-programming-patterns-with.html' title='Functional Programming Patterns with Java8 by Victor Rentea'/><author><name>TLopes</name><uri>http://www.blogger.com/profile/17482455256201406215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/YnzisJh-ZNI/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>