JAVA-84: Move articles out of spring-boot part 1 (#9950)
* JAVA-84: Moved 1 article to spring-boot-actuator * JAVA-84: Moved 2 articles to spring-boot-mvc * JAVA-84: README changes for spring-boot module * JAVA-84: Moved classes to com.baeldung pkg to correct compilation issue
This commit is contained in:
parent
8cf889d27e
commit
e0ebf5904f
|
@ -8,3 +8,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
|
||||||
### Relevant Articles:
|
### Relevant Articles:
|
||||||
|
|
||||||
- [Liveness and Readiness Probes in Spring Boot](https://www.baeldung.com/spring-liveness-readiness-probes)
|
- [Liveness and Readiness Probes in Spring Boot](https://www.baeldung.com/spring-liveness-readiness-probes)
|
||||||
|
- [Custom Information in Spring Boot Info Endpoint](https://www.baeldung.com/spring-boot-info-actuator-custom)
|
|
@ -24,6 +24,14 @@
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-web</artifactId>
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.baeldung.endpoints.info;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
public class Application {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(Application.class, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -3,7 +3,6 @@ package com.baeldung.endpoints.info;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.baeldung.repository.UserRepository;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.actuate.info.Info;
|
import org.springframework.boot.actuate.info.Info;
|
||||||
import org.springframework.boot.actuate.info.InfoContributor;
|
import org.springframework.boot.actuate.info.InfoContributor;
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.baeldung.endpoints.info;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "users")
|
||||||
|
public class User {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
private Integer id;
|
||||||
|
private String name;
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
public User() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public User(String name, Integer status) {
|
||||||
|
this.name = name;
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(Integer status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,78 @@
|
||||||
|
package com.baeldung.endpoints.info;
|
||||||
|
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.domain.Sort;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
@Repository("userRepository")
|
||||||
|
public interface UserRepository extends JpaRepository<User, Integer> {
|
||||||
|
|
||||||
|
int countByStatus(int status);
|
||||||
|
|
||||||
|
Optional<User> findOneByName(String name);
|
||||||
|
|
||||||
|
@Async
|
||||||
|
CompletableFuture<User> findOneByStatus(Integer status);
|
||||||
|
|
||||||
|
@Query("SELECT u FROM User u WHERE u.status = 1")
|
||||||
|
Collection<User> findAllActiveUsers();
|
||||||
|
|
||||||
|
@Query(value = "SELECT * FROM USERS u WHERE u.status = 1", nativeQuery = true)
|
||||||
|
Collection<User> findAllActiveUsersNative();
|
||||||
|
|
||||||
|
@Query("SELECT u FROM User u WHERE u.status = ?1")
|
||||||
|
User findUserByStatus(Integer status);
|
||||||
|
|
||||||
|
@Query(value = "SELECT * FROM Users u WHERE u.status = ?1", nativeQuery = true)
|
||||||
|
User findUserByStatusNative(Integer status);
|
||||||
|
|
||||||
|
@Query("SELECT u FROM User u WHERE u.status = ?1 and u.name = ?2")
|
||||||
|
User findUserByStatusAndName(Integer status, String name);
|
||||||
|
|
||||||
|
@Query("SELECT u FROM User u WHERE u.status = :status and u.name = :name")
|
||||||
|
User findUserByStatusAndNameNamedParams(@Param("status") Integer status, @Param("name") String name);
|
||||||
|
|
||||||
|
@Query(value = "SELECT * FROM Users u WHERE u.status = :status AND u.name = :name", nativeQuery = true)
|
||||||
|
User findUserByStatusAndNameNamedParamsNative(@Param("status") Integer status, @Param("name") String name);
|
||||||
|
|
||||||
|
@Query("SELECT u FROM User u WHERE u.status = :status and u.name = :name")
|
||||||
|
User findUserByUserStatusAndUserName(@Param("status") Integer userStatus, @Param("name") String userName);
|
||||||
|
|
||||||
|
@Query("SELECT u FROM User u WHERE u.name like ?1%")
|
||||||
|
User findUserByNameLike(String name);
|
||||||
|
|
||||||
|
@Query("SELECT u FROM User u WHERE u.name like :name%")
|
||||||
|
User findUserByNameLikeNamedParam(@Param("name") String name);
|
||||||
|
|
||||||
|
@Query(value = "SELECT * FROM users u WHERE u.name LIKE ?1%", nativeQuery = true)
|
||||||
|
User findUserByNameLikeNative(String name);
|
||||||
|
|
||||||
|
@Query(value = "SELECT u FROM User u")
|
||||||
|
List<User> findAllUsers(Sort sort);
|
||||||
|
|
||||||
|
@Query(value = "SELECT u FROM User u ORDER BY id")
|
||||||
|
Page<User> findAllUsersWithPagination(Pageable pageable);
|
||||||
|
|
||||||
|
@Query(value = "SELECT * FROM Users ORDER BY id \n-- #pageable\n", countQuery = "SELECT count(*) FROM Users", nativeQuery = true)
|
||||||
|
Page<User> findAllUsersWithPaginationNative(Pageable pageable);
|
||||||
|
|
||||||
|
@Modifying
|
||||||
|
@Query("update User u set u.status = :status where u.name = :name")
|
||||||
|
int updateUserSetStatusForName(@Param("status") Integer status, @Param("name") String name);
|
||||||
|
|
||||||
|
@Modifying
|
||||||
|
@Query(value = "UPDATE Users u SET u.status = ? WHERE u.name = ?", nativeQuery = true)
|
||||||
|
int updateUserSetStatusForNameNative(Integer status, String name);
|
||||||
|
|
||||||
|
}
|
|
@ -3,3 +3,9 @@ management.endpoint.health.show-details=always
|
||||||
management.endpoint.health.status.http-mapping.down=500
|
management.endpoint.health.status.http-mapping.down=500
|
||||||
management.endpoint.health.status.http-mapping.out_of_service=503
|
management.endpoint.health.status.http-mapping.out_of_service=503
|
||||||
management.endpoint.health.status.http-mapping.warning=500
|
management.endpoint.health.status.http-mapping.warning=500
|
||||||
|
|
||||||
|
## Configuring info endpoint
|
||||||
|
info.app.name=Spring Sample Application
|
||||||
|
info.app.description=This is my first spring boot application G1
|
||||||
|
info.app.version=1.0.0
|
||||||
|
info.java-vendor = ${java.specification.vendor}
|
|
@ -9,4 +9,6 @@ This module contains articles about Spring Web MVC in Spring Boot projects.
|
||||||
- [A Controller, Service and DAO Example with Spring Boot and JSF](https://www.baeldung.com/jsf-spring-boot-controller-service-dao)
|
- [A Controller, Service and DAO Example with Spring Boot and JSF](https://www.baeldung.com/jsf-spring-boot-controller-service-dao)
|
||||||
- [Setting Up Swagger 2 with a Spring REST API](https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api)
|
- [Setting Up Swagger 2 with a Spring REST API](https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api)
|
||||||
- [Using Spring ResponseEntity to Manipulate the HTTP Response](https://www.baeldung.com/spring-response-entity)
|
- [Using Spring ResponseEntity to Manipulate the HTTP Response](https://www.baeldung.com/spring-response-entity)
|
||||||
|
- [The @ServletComponentScan Annotation in Spring Boot](https://www.baeldung.com/spring-servletcomponentscan)
|
||||||
|
- [Guide to Internationalization in Spring Boot](https://www.baeldung.com/spring-boot-internationalization)
|
||||||
- More articles: [[next -->]](/spring-boot-modules/spring-boot-mvc-2)
|
- More articles: [[next -->]](/spring-boot-modules/spring-boot-mvc-2)
|
||||||
|
|
|
@ -8,7 +8,7 @@ public class PageController {
|
||||||
|
|
||||||
@GetMapping("/international")
|
@GetMapping("/international")
|
||||||
public String getInternationalPage() {
|
public String getInternationalPage() {
|
||||||
return "international";
|
return "thymeleaf/international";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1 +1,5 @@
|
||||||
email.notempty=Please provide valid email id.
|
email.notempty=Please provide valid email id.
|
||||||
|
greeting=Hello! Welcome to our website!
|
||||||
|
lang.change=Change the language
|
||||||
|
lang.eng=English
|
||||||
|
lang.fr=French
|
|
@ -1 +1,5 @@
|
||||||
email.notempty=Veuillez fournir un identifiant de messagerie valide.
|
email.notempty=Veuillez fournir un identifiant de messagerie valide.
|
||||||
|
greeting=Bonjour! Bienvenue sur notre site!
|
||||||
|
lang.change=Changez la langue
|
||||||
|
lang.eng=Anglais
|
||||||
|
lang.fr=Francais
|
||||||
|
|
|
@ -1,23 +1,21 @@
|
||||||
package com.baeldung.annotation.servletcomponentscan;
|
package com.baeldung.annotation.servletcomponentscan;
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.test.context.TestPropertySource;
|
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
|
||||||
|
|
||||||
import javax.servlet.FilterRegistration;
|
|
||||||
import javax.servlet.ServletContext;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import javax.servlet.FilterRegistration;
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = SpringBootAnnotatedApp.class)
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = SpringBootAnnotatedApp.class)
|
||||||
public class SpringBootWithServletComponentIntegrationTest {
|
public class SpringBootWithServletComponentIntegrationTest {
|
|
@ -8,12 +8,9 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
|
||||||
### Relevant Articles:
|
### Relevant Articles:
|
||||||
|
|
||||||
- [A Guide to Spring in Eclipse STS](https://www.baeldung.com/eclipse-sts-spring)
|
- [A Guide to Spring in Eclipse STS](https://www.baeldung.com/eclipse-sts-spring)
|
||||||
- [The @ServletComponentScan Annotation in Spring Boot](https://www.baeldung.com/spring-servletcomponentscan)
|
|
||||||
- [How to Register a Servlet in Java](https://www.baeldung.com/register-servlet)
|
- [How to Register a Servlet in Java](https://www.baeldung.com/register-servlet)
|
||||||
- [Guide to Spring WebUtils and ServletRequestUtils](https://www.baeldung.com/spring-webutils-servletrequestutils)
|
- [Guide to Spring WebUtils and ServletRequestUtils](https://www.baeldung.com/spring-webutils-servletrequestutils)
|
||||||
- [Guide to Internationalization in Spring Boot](https://www.baeldung.com/spring-boot-internationalization)
|
|
||||||
- [Dynamic DTO Validation Config Retrieved from the Database](https://www.baeldung.com/spring-dynamic-dto-validation)
|
- [Dynamic DTO Validation Config Retrieved from the Database](https://www.baeldung.com/spring-dynamic-dto-validation)
|
||||||
- [Custom Information in Spring Boot Info Endpoint](https://www.baeldung.com/spring-boot-info-actuator-custom)
|
|
||||||
- [Guide to Spring Type Conversions](https://www.baeldung.com/spring-type-conversions)
|
- [Guide to Spring Type Conversions](https://www.baeldung.com/spring-type-conversions)
|
||||||
- [Spring Boot: Configuring a Main Class](https://www.baeldung.com/spring-boot-main-class)
|
- [Spring Boot: Configuring a Main Class](https://www.baeldung.com/spring-boot-main-class)
|
||||||
- [A Quick Intro to the SpringBootServletInitializer](https://www.baeldung.com/spring-boot-servlet-initializer)
|
- [A Quick Intro to the SpringBootServletInitializer](https://www.baeldung.com/spring-boot-servlet-initializer)
|
||||||
|
|
|
@ -21,12 +21,6 @@ spring.jmx.enabled=true
|
||||||
## for pretty printing of json when endpoints accessed over HTTP
|
## for pretty printing of json when endpoints accessed over HTTP
|
||||||
http.mappers.jsonPrettyPrint=true
|
http.mappers.jsonPrettyPrint=true
|
||||||
|
|
||||||
## Configuring info endpoint
|
|
||||||
info.app.name=Spring Sample Application
|
|
||||||
info.app.description=This is my first spring boot application G1
|
|
||||||
info.app.version=1.0.0
|
|
||||||
info.java-vendor = ${java.specification.vendor}
|
|
||||||
|
|
||||||
logging.level.org.springframework=INFO
|
logging.level.org.springframework=INFO
|
||||||
|
|
||||||
#Servlet Configuration
|
#Servlet Configuration
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
greeting=Hello! Welcome to our website!
|
|
||||||
lang.change=Change the language
|
|
||||||
lang.eng=English
|
|
||||||
lang.fr=French
|
|
|
@ -1,4 +0,0 @@
|
||||||
greeting=Bonjour! Bienvenue sur notre site!
|
|
||||||
lang.change=Changez la langue
|
|
||||||
lang.eng=Anglais
|
|
||||||
lang.fr=Francais
|
|
Loading…
Reference in New Issue