In Spring integration tests, we can use @TestPropertySource to override the application properties which default loaded from application.properties or application.yml. Table of contents 1. Service Class 2. Test with the @TestPropertySource 3. @TestPropertySource Inline Properties 4. Download Source Code 5. References P.S Tested with Spring Boot 3.1.2 1. Service Class 1.1 We have a service […]

Read more Spring @TestPropertySource example

In Spring Boot, we can use @Value annotation to access the values defined in the application.properties from Spring-managed beans. application.properties #Logging logging.level.org.springframework.web=ERROR logging.level.com.mkyong=DEBUG email.smtp.server=smtp.gmail.com import org.springframework.beans.factory.annotation.Value; @Value("${email.smtp.server}") private String server; Table of contents: 1. application.properties 1. @Value 2. Environment 3. @ConfigurationProperties 4. Download Source Code 5. References P.S. Tested with Spring Boot 3.1.2 1. application.properties […]

Read more How to access values from application.properties in Spring Boot

Below is a Spring Boot application and validation bean API example. GlobalProperties.java import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotEmpty; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.validation.annotation.Validated; @Component @ConfigurationProperties @Validated public class GlobalProperties { //@Value("${thread-pool}") @Max(5) @Min(0) private int threadPool; Run the Spring Boot application and hits the following error: Terminal package javax.validation.constraints does not exist Solution – […]

Read more package javax.validation.constraints does not exist

Below is a Spring Boot Test example to test whether the web server started on port 8181. P.S. Tested with Spring Boot 3 and JUnit 5. application.properties server.port = 8181 WebServerTests.java package com.mkyong; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.server.LocalServerPort; import static org.junit.jupiter.api.Assertions.assertEquals; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class WebServerTests { @LocalServerPort private int port; @Test public […]

Read more Spring Boot Test if web server starts on a specific port

When ssh into a production server, Debian, and noticed there is a warning or error as follows: Terminal manpath: can’t set the locale; make sure $LC_* and $LANG are correct mkyong@test-server:~$ Check the server’s locale; there are warning about the LC_CTYPE and LC_ALL variables. Terminal $ locale locale: Cannot set LC_CTYPE to default locale: No […]

Read more Cannot set LC_CTYPE to default locale: No such file or directory

In the terminal, we can type mariadb -V (uppercase V) to display the current MariaDB version installed on the server. Terminal $ mariadb -V mariadb Ver 15.1 Distrib 10.5.19-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper The above output show MariaDB version 10.5.19 is installed on the server. Server System Variables Alternatively, we can connect to […]

Read more How to check MariaDB version

Java 19 reached general availability on 20 September 2022, download Java 19 here. Java 19 has 7 JEP items. 1. JEP 405: Record Patterns (Preview) 1.1 Normal Record Patterns Example 1.2 Record Nested Patterns Example 2. JEP 422: Linux/RISC-V Port 3. JEP 424: Foreign Function & Memory API (Preview) 4. JEP 425: Virtual Threads (Preview) […]

Read more What is new in Java 19

After upgrading to macOS Big Sur 11, macOS Monterey 12, macOS Ventura 13, etc. Does it seem every upgrading macOS will cause the following error message for the git command? How to fix it? Terminal % git xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun Solution Open the Terminal, and run this […]

Read more Git on macOS, xcrun: error: invalid active developer path

I migrated from Spring 3 to Spring 5 and found out the WebMvcConfigurerAdapter class is deprecated; what should we do? SpringWebConfig.java package com.mkyong.helloworld.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @EnableWebMvc @Configuration @ComponentScan({ "com.mkyong.helloworld.web" }) public class SpringWebConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) […]

Read more Spring MVC – WebMvcConfigurerAdapter is deprecated

In the IntelliJ IDEA, clicks on the download sources, and it shows the error Cannot connect to the Maven process. Terminal Cannot connect to the Maven process. Try again later. If the problem persists, check the Maven Importing JDK settings and restart IntelliJ IDEA Tested with IntelliJ IDEA 2022.2.1 (Community Edition) Build #IC-222.3739.54, built on […]

Read more IntelliJ IDEA – Cannot connect to the Maven process

This article shows you what @Controller and @RestController are and their differences. Table of contents: 1. Spring @Controller annotation 2. Spring @RestController annotation 3. Download Source Code 4. References 1. Spring @Controller annotation Spring 2.5 introduced the @Controller as the web controller for the MVC architecture. Spring 3.0 introduced the @ResponseBody to return the method’s […]

Read more Spring @Controller and @RestController Annotations

In JavaScript, we can use document.querySelector() to check if an element exists. The document.querySelector() searches for and returns the first element matching a selector or set of selectors. If it finds no matching elements, it returns null. For example, to check if an element with the id elementId exists: if (document.querySelector("#elementId")) { // The element […]

Read more Check if element exists in JavaScript

In JavaScript, we can use the built-in filter() function to remove a specified item from an array. Table of contents: 1. Remove specified item from the array with filter() 2. Remove two specified items from the array with filters() and includes() 3. JavaScript examples 4. References 1. Remove specified item from the array with filter() […]

Read more JavaScript – Remove a specified item from array

How to pass a null for the below parameterized tests? @ParameterizedTest(name = "#{index} – Run test with args={0}") @ValueSource(strings = {"", " "}) // @ValueSource(strings = {"", " ", null}) // compile error void testBlankIncludeNull(String input) { assertTrue(StringUtils.isBlank(input)); } 1. Solution – @NullSource Since JUnit 5.4 and above, we can use the @NullSource to pass […]

Read more How to pass a null value in JUnit 5 parameterized tests

The Java String compareTo() method compares two strings lexicographically (alphabetical order). It returns a positive number, negative number, or zero. s1.compareTo(s2) if s1 < s2, it returns negative number. if s1 > s2, it returns positive number. if s1 == s2, it returns 0. Table of contents 1. "a".compareTo("c"), negative integer 2. "c".compareTo("a"), positive integer […]

Read more Java String compareTo() examples

In Java, we can use substring(0, 1).toUpperCase() + str.substring(1) to make the first letter of a String as a capital letter (uppercase letter) String str = "mkyong"; String str1 = str.substring(0, 1).toUpperCase(); // first letter = M String str2 = str.substring(1); // after 1 letter = kyong String result = str.substring(0, 1).toUpperCase() + str.substring(1); // […]

Read more How to capitalize the first letter of a String in Java

In Java, we can use Integer.valueOf(String) to convert a String to an Integer object; For unparsable String, it throws NumberFormatException. Integer.valueOf("1"); // ok Integer.valueOf("+1"); // ok, result = 1 Integer.valueOf("-1"); // ok, result = -1 Integer.valueOf("100"); // ok Integer.valueOf(" 1"); // NumberFormatException (contains space) Integer.valueOf("1 "); // NumberFormatException (contains space) Integer.valueOf("2147483648"); // NumberFormatException (Integer max […]

Read more How to convert String to Integer in Java

This article shows how to format source code in Visual Studio Code (VSCode). Tables of contents 1. VSCode – Code Formatting Shortcuts 2. VSCode – Code Formatting Shortcut #2 3. Formatter is not installed 4. References 1. VSCode – Code Formatting Shortcuts The code formatting is available in Visual Studio Code (VSCode) through the following […]

Read more How to format source code in Visual Studio Code (VSCode)

Terminal Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=…) with your test The Spring Boot tests @SpringBootTest or @DataJpaTest need to find the @SpringBootConfiguration application class to launch the entire application and do the tests. And if Spring Boot can’t find the SpringBootConfiguration, it throws errors and stops the tests. A […]

Read more Spring Boot – Unable to find a @SpringBootConfiguration

We upgraded the project from Java 11 to Java 17, and mvn test hits the Fatal error compiling: error: invalid target release: 17 pom.xml <properties> <java.version>17</java.version> </properties> Terminal mvn test [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project spring-boot-hello: Fatal error compiling: error: invalid target release: 17 -> [Help 1] The Java version is […]

Read more Maven error – invalid target release: 17

Java 17 is a long-term support (LTS) release, reached General Availability on 14 September 2021, download Java 17 here. Java 17 has 14 JEP items. 1. JEP 306: Restore Always-Strict Floating-Point Semantics 2. JEP 356: Enhanced Pseudo-Random Number Generators 3. JEP 382: New macOS Rendering Pipeline 4. JEP 391: macOS/AArch64 Port 5. JEP 398: Deprecate […]

Read more What is new in Java 17

In this article, we will show you how to access the environment variables in Python. import os print(os.environ[‘HOME’]) print(os.getenv(‘HOME’)) P.S Tested with Python 3.9.5 1. Get an environment variable 1.1 The below code uses [os.environ(https://docs.python.org/3/library/os.html#os.environ) to print the environment variable HOME. import os print(os.environ[‘HOME’]) # /Users/mkyong 1.2 If the requested key does not exist, it […]

Read more How to get an environment variable in Python