Skip to main content

Posts

Showing posts with the label springboot

Tech Conversant Weekly Nov 28 - Dec 03

Topic: General                                                                                                                                              Level: All In this post, we shall catch up on the multi-faceted technological updates that happened over the past week as well as a few that seized my attention, How can a DTO contribute to enhancing the security of the java application? A DTO can be a JavaBeans (encapsulated) or POJO (no constructor) or an immutable Record class (added advantage on serialization), that maps the data from the database layer domain model to the presentation layer, restricting the data on a need-to-know basis and acts as a proxy providing filtering and preprocessing. https://snyk.io/blog/how-to-use-java-dtos/ By employing static code analysis tools, the NullPointerException feasibility on the code flow is determined, making the code not only null-safe but also cutting down the exception propagated stacktrace given in the piped code sequence invocation

Tech Conversant Weekly Nov 21- Nov 26

Topic: General                                                                                                                                              Level: All In this post, we shall catch up on the multi-faceted technological updates that happened over the past week, Modularity can be achieved by confining the impact of change within the module, a well-defined boundary without leaks. JDK9s Modules offered preliminary isolation for packaged module structures, however at an application level module accesses should be rule defined. Spring Modulith with ArchUnit and jMolecules, established package relationship, restricted accesses and validates relationship during tests. By default, a module can access the content of any other module but cannot access subpackages of other modules. https://blog.frankel.ch/spring-modulith-modularity-maturity/ Benefits of using Spring 6 in terms of ORM, Text blocks to hold SQL in query annotation, Records to define DTO, UUID as basic type in JPA 3, JP

Tech Conversant Weekly Nov 14 - Nov 19

Topic: General                                                                                                                                              Level: All In this post, we shall catch up on the multi-faceted technological updates that happened over the past week, Spring framework 6.0 has been released and is available in Maven central. It used JDK 17 as a baseline, and Jakarta EE 9+ with specifications for Servlet 6.0 and JPA 3.1 facilitating access to Tomcat 10.1 and Hibernate ORM 6.1 respectively. Spring application contexts support AOT transformation processing as part of GraalVM Native image used in tandem with Spring Boot 3. Spring 6.0 enables the usage of Project Loom's Virtual threads feature and Project CRaC with checkpoint restoration for faster JVM startup and many other features. https://spring.io/blog/2022/11/16/spring-framework-6-0-goes-ga Establishing a good degree of isolation can vary regarding deployment (Microservices) or DDD-bounded context. Spring Mo

Spring on GraalVM Implementation

Topic: GraalVM                                                                                                                            Level: Advanced Spring on GraalVM Implementation In this consecutive post ( prior post ), we shall exploit the theory of the previous post on GraalVM, Native Image, and Spring Native and set up a Spring Boot project running on GraalVM that leverages static analysis and linkage during the build time with ahead-of-time compilation delivering a windows native executable. Prerequisites GraalVM JDK 11 distribution ( https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-22.3.0 ) - ensure you revise the JAVA_HOME and PATH appropriately Native Image executable (for windows, https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16 ) Maven build tool IntelliJ IDE MySQL Windows 10 OS We will commence by downloading a Spring template with Spring Boot >=2.7.5 version running on JDK 11 with the dependencies for Gr

Spring on GraalVM

Topic: GraalVM                                                                                                                            Level: Advanced GraalVM - What? GraalVM is a virtual machine for seamless interoperability and polyglot language compilation that offers highly optimized runtime executable binaries, speeding the application startup and reducing memory consumption ideal for microservices, serverless, and cloud workloads in general. Any source code running on the Java Hotspot VM can also run on the GraalVM. Native Images - What? Native Image is a technology by which a java code is compiled ahead of time into a binary executable, termed a native executable which doesn't require a JVM to run. The notion of the native executable is to have optimized machine code (packaging only the necessary reachable runtime application classes, standard library classes, language runtime, statically linked native code from JDK, and other resources making it a lightweight artifact) o