Skip to content

Commit 89f37c0

Browse files
initial version
0 parents  commit 89f37c0

File tree

9 files changed

+344
-0
lines changed

9 files changed

+344
-0
lines changed

pom.xml

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<groupId>com.spring.rest</groupId>
6+
<artifactId>springboot-connection-pool</artifactId>
7+
<version>0.0.1-SNAPSHOT</version>
8+
<name>springboot-connection-pool</name>
9+
<parent>
10+
<groupId>org.springframework.boot</groupId>
11+
<artifactId>spring-boot-starter-parent</artifactId>
12+
<version>2.0.0.BUILD-SNAPSHOT</version>
13+
<relativePath />
14+
<!-- lookup parent from repository -->
15+
</parent>
16+
<properties>
17+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
18+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
19+
<java.version>1.8</java.version>
20+
</properties>
21+
<dependencies>
22+
<dependency>
23+
<groupId>org.springframework.boot</groupId>
24+
<artifactId>spring-boot-starter-web</artifactId>
25+
</dependency>
26+
<dependency>
27+
<groupId>org.springframework.boot</groupId>
28+
<artifactId>spring-boot-starter-data-jpa</artifactId>
29+
</dependency>
30+
31+
<!-- Spring Boot Data 2.0 includes HikariCP by default -->
32+
<!-- dependency>
33+
<groupId>com.zaxxer</groupId>
34+
<artifactId>HikariCP</artifactId>
35+
<version>3.1.0</version>
36+
</dependency -->
37+
38+
<dependency>
39+
<groupId>com.h2database</groupId>
40+
<artifactId>h2</artifactId>
41+
<scope>runtime</scope>
42+
</dependency>
43+
<dependency>
44+
<groupId>log4j</groupId>
45+
<artifactId>log4j</artifactId>
46+
<version>1.2.17</version>
47+
</dependency>
48+
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
49+
<dependency>
50+
<groupId>log4j</groupId>
51+
<artifactId>log4j</artifactId>
52+
<version>1.2.17</version>
53+
</dependency>
54+
<dependency>
55+
<groupId>org.modelmapper</groupId>
56+
<artifactId>modelmapper</artifactId>
57+
<version>2.3.0</version>
58+
</dependency>
59+
<dependency>
60+
<groupId>org.springframework.boot</groupId>
61+
<artifactId>spring-boot-starter-test</artifactId>
62+
<scope>test</scope>
63+
</dependency>
64+
</dependencies>
65+
<build>
66+
<plugins>
67+
<plugin>
68+
<groupId>org.springframework.boot</groupId>
69+
<artifactId>spring-boot-maven-plugin</artifactId>
70+
</plugin>
71+
</plugins>
72+
</build>
73+
<repositories>
74+
<repository>
75+
<id>spring-snapshots</id>
76+
<name>Spring Snapshots</name>
77+
<url>https://repo.spring.io/snapshot</url>
78+
<snapshots>
79+
<enabled>true</enabled>
80+
</snapshots>
81+
</repository>
82+
<repository>
83+
<id>spring-milestones</id>
84+
<name>Spring Milestones</name>
85+
<url>https://repo.spring.io/milestone</url>
86+
<snapshots>
87+
<enabled>false</enabled>
88+
</snapshots>
89+
</repository>
90+
</repositories>
91+
<pluginRepositories>
92+
<pluginRepository>
93+
<id>spring-snapshots</id>
94+
<name>Spring Snapshots</name>
95+
<url>https://repo.spring.io/snapshot</url>
96+
<snapshots>
97+
<enabled>true</enabled>
98+
</snapshots>
99+
</pluginRepository>
100+
<pluginRepository>
101+
<id>spring-milestones</id>
102+
<name>Spring Milestones</name>
103+
<url>https://repo.spring.io/milestone</url>
104+
<snapshots>
105+
<enabled>false</enabled>
106+
</snapshots>
107+
</pluginRepository>
108+
</pluginRepositories>
109+
110+
</project>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.springboot.rest;
2+
3+
import org.modelmapper.ModelMapper;
4+
import org.springframework.boot.SpringApplication;
5+
import org.springframework.boot.autoconfigure.SpringBootApplication;
6+
import org.springframework.context.annotation.Bean;
7+
8+
@SpringBootApplication
9+
public class DemoMain {
10+
public static void main(String[] args) {
11+
SpringApplication.run(DemoMain.class, args);
12+
}
13+
14+
@Bean
15+
public ModelMapper modelMapper() {
16+
return new ModelMapper();
17+
}
18+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.springboot.rest.controller;
2+
3+
import java.util.List;
4+
5+
import org.slf4j.Logger;
6+
import org.slf4j.LoggerFactory;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.http.MediaType;
9+
import org.springframework.web.bind.annotation.GetMapping;
10+
import org.springframework.web.bind.annotation.PathVariable;
11+
import org.springframework.web.bind.annotation.RequestMapping;
12+
import org.springframework.web.bind.annotation.RestController;
13+
14+
import com.springboot.rest.dto.UserDto;
15+
import com.springboot.rest.service.UserService;
16+
17+
@RestController
18+
@RequestMapping(value = "/userinfo")
19+
public class UserController {
20+
21+
22+
@Autowired
23+
private UserService userService;
24+
25+
private static final Logger LOGGER = LoggerFactory.getLogger(UserController.class);
26+
27+
// get all userinfo
28+
@GetMapping(value = "/alluser", produces = MediaType.APPLICATION_JSON_VALUE)
29+
public List<UserDto> getUserinfo() {
30+
LOGGER.info("inside class!!!! UserController, method!!!: getUserinfo");
31+
return userService.getAllUserInfo();
32+
}
33+
34+
// get user info by id
35+
@GetMapping(value = "/{userId}", produces = MediaType.APPLICATION_JSON_VALUE)
36+
public UserDto getUserById(@PathVariable("userId") String userId) {
37+
LOGGER.info("inside method!!!: getUserById", userId);
38+
return userService.getUserByUserId(userId);
39+
}
40+
41+
}
42+
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.springboot.rest.dto;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
public class UserDto {
6+
7+
//@JsonIgnore if you don't want to show in response.
8+
@JsonProperty(value="userId")
9+
private String userId=null;
10+
11+
@JsonProperty(value="userName")
12+
private String userName=null;
13+
14+
public String getUserId() {
15+
return userId;
16+
}
17+
18+
public void setUserId(String userId) {
19+
this.userId = userId;
20+
}
21+
22+
public String getUserName() {
23+
return userName;
24+
}
25+
26+
public void setUserName(String userName) {
27+
this.userName = userName;
28+
}
29+
30+
31+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.springboot.rest.entity;
2+
3+
import javax.persistence.Column;
4+
import javax.persistence.Entity;
5+
import javax.persistence.Id;
6+
7+
@Entity
8+
//@Table(name = "user_table")
9+
public class User {
10+
11+
@Id
12+
@Column
13+
private String userId;
14+
15+
@Column
16+
private String userName;
17+
18+
public User() {
19+
20+
}
21+
22+
public User(String userId, String userName) {
23+
super();
24+
this.userId = userId;
25+
this.userName = userName;
26+
}
27+
28+
public String getUserId() {
29+
return userId;
30+
}
31+
public void setUserId(String userId) {
32+
this.userId = userId;
33+
}
34+
public String getUserName() {
35+
return userName;
36+
}
37+
public void setUserName(String userName) {
38+
this.userName = userName;
39+
}
40+
41+
42+
}
43+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.springboot.rest.repository;
2+
3+
import org.springframework.data.jpa.repository.JpaRepository;
4+
5+
import com.springboot.rest.entity.User;
6+
7+
8+
public interface UserRepository extends JpaRepository<User, String>{
9+
public User findByUserId(String userId);
10+
11+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.springboot.rest.service;
2+
3+
import org.modelmapper.ModelMapper;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.stereotype.Component;
6+
7+
import com.springboot.rest.dto.UserDto;
8+
import com.springboot.rest.entity.User;
9+
10+
@Component
11+
public class ConverterService {
12+
13+
@Autowired
14+
private ModelMapper modelMapper;
15+
16+
public UserDto convertToDto(User userObject) {
17+
return modelMapper.map(userObject, UserDto.class);
18+
}
19+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.springboot.rest.service;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.stream.Collectors;
6+
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.stereotype.Service;
11+
12+
import com.springboot.rest.controller.UserController;
13+
import com.springboot.rest.dto.UserDto;
14+
import com.springboot.rest.entity.User;
15+
import com.springboot.rest.repository.UserRepository;
16+
17+
@Service
18+
public class UserService {
19+
20+
@Autowired
21+
private UserRepository userRepository;
22+
23+
@Autowired
24+
private ConverterService converterService;
25+
26+
private static final Logger LOGGER = LoggerFactory.getLogger(UserService.class);
27+
28+
public List<UserDto> getAllUserInfo() {
29+
LOGGER.info("inside class!!!! UserService, method!!!: getAllUserInfo");
30+
List<User> userList = new ArrayList<>();
31+
User userObj1 = new User("111", "First Demo");
32+
User userObj2 = new User("222", "Second Demo");
33+
userList.add(userObj1);
34+
userList.add(userObj2);
35+
userRepository.saveAll(userList);
36+
List<User> userDataList = userRepository.findAll();
37+
return userDataList.stream().map(converterService::convertToDto).collect(Collectors.toList());
38+
}
39+
40+
41+
public UserDto getUserByUserId(String userId) {
42+
LOGGER.info("method!!!: getUserByUserId", userId);
43+
User userObj = userRepository.findById(userId).orElse(null);
44+
return converterService.convertToDto(userObj);
45+
}
46+
47+
}
48+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
spring.profiles.active=local
2+
server.port = 9093
3+
4+
spring.jpa.hibernate.ddl-auto=create-drop
5+
spring.h2.console.enabled=true
6+
7+
spring.datasource.url=jdbc:h2:mem:testdb
8+
spring.datasource.driverClassName=org.h2.Driver
9+
spring.datasource.username=sa
10+
spring.datasource.password=password
11+
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
12+
13+
#### Hikari connection pool properties #####
14+
#Spring Boot 2.0 includes HikariDataSource by default
15+
#spring.datasource.type = com.zaxxer.hikari.HikariDataSource
16+
17+
spring.datasource.hikari.connection-timeout=40000
18+
spring.datasource.hikari.minimum-idle=5
19+
spring.datasource.hikari.maximum-pool-size=8
20+
spring.datasource.hikari.idle-timeout=300000
21+
spring.datasource.hikari.max-lifetime=1200000
22+
spring.datasource.hikari.auto-commit=false

0 commit comments

Comments
 (0)