-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'Study-Diary:main' into main
- Loading branch information
Showing
94 changed files
with
2,225 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
HELP.md | ||
.gradle | ||
build/ | ||
!gradle/wrapper/gradle-wrapper.jar | ||
!**/src/main/**/build/ | ||
!**/src/test/**/build/ | ||
|
||
### STS ### | ||
.apt_generated | ||
.classpath | ||
.factorypath | ||
.project | ||
.settings | ||
.springBeans | ||
.sts4-cache | ||
bin/ | ||
!**/src/main/**/bin/ | ||
!**/src/test/**/bin/ | ||
|
||
### IntelliJ IDEA ### | ||
.idea | ||
*.iws | ||
*.iml | ||
*.ipr | ||
out/ | ||
!**/src/main/**/out/ | ||
!**/src/test/**/out/ | ||
|
||
### NetBeans ### | ||
/nbproject/private/ | ||
/nbbuild/ | ||
/dist/ | ||
/nbdist/ | ||
/.nb-gradle/ | ||
|
||
### VS Code ### | ||
.vscode/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Spring Cloud Passport |
34 changes: 34 additions & 0 deletions
34
241020/redislockmanger/application/member-service/build.gradle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
group = 'com.seikim' | ||
version = '0.0.1' | ||
|
||
java { | ||
toolchain { | ||
languageVersion = JavaLanguageVersion.of(17) | ||
} | ||
} | ||
|
||
dependencies { | ||
/* Project */ | ||
implementation project(':client:web-core') | ||
implementation project(':common:exception') | ||
implementation project(':domain:mysql-core') | ||
implementation project(':domain:mysql-member-domain') | ||
implementation project(':domain:redis-red-lock') | ||
|
||
/* Spring Cloud */ | ||
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' | ||
|
||
/* Spring Boot */ | ||
implementation 'org.springframework.boot:spring-boot-starter-web' | ||
implementation 'org.springframework.boot:spring-boot-starter-actuator' | ||
|
||
/* Test */ | ||
testImplementation 'org.springframework.boot:spring-boot-starter-test' | ||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher' | ||
|
||
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc' | ||
testImplementation 'org.mockito:mockito-core' | ||
|
||
/* Project */ | ||
implementation project(':domain:mysql-member-domain') | ||
} |
17 changes: 17 additions & 0 deletions
17
...kmanger/application/member-service/src/main/java/com/seikim/MemberServiceApplication.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package com.seikim; | ||
|
||
import org.springframework.boot.SpringApplication; | ||
import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan; | ||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | ||
|
||
@EnableDiscoveryClient | ||
@SpringBootApplication(scanBasePackages = "com.seikim") | ||
@ConfigurationPropertiesScan(value = "com.seikim") | ||
public class MemberServiceApplication { | ||
|
||
public static void main(String[] args) { | ||
SpringApplication.run(MemberServiceApplication.class, args); | ||
} | ||
|
||
} |
15 changes: 15 additions & 0 deletions
15
...tion/member-service/src/main/java/com/seikim/memberservice/actuator/RouterController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.seikim.memberservice.actuator; | ||
|
||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
|
||
import com.seikim.memberservice.common.MemberRestController; | ||
|
||
@MemberRestController | ||
public class RouterController { | ||
|
||
@GetMapping("/v1/actuator/route") | ||
public ResponseEntity<String> routeCheck() { | ||
return ResponseEntity.ok("Route is OK"); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
...on/member-service/src/main/java/com/seikim/memberservice/common/MemberRestController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package com.seikim.memberservice.common; | ||
|
||
import java.lang.annotation.Documented; | ||
import java.lang.annotation.ElementType; | ||
import java.lang.annotation.Retention; | ||
import java.lang.annotation.RetentionPolicy; | ||
import java.lang.annotation.Target; | ||
|
||
import org.springframework.stereotype.Controller; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.ResponseBody; | ||
|
||
@Target({ElementType.TYPE}) | ||
@Retention(RetentionPolicy.RUNTIME) | ||
@Documented | ||
@Controller | ||
@RequestMapping("/member-service") | ||
@ResponseBody | ||
public @interface MemberRestController { | ||
} |
40 changes: 40 additions & 0 deletions
40
...on/member-service/src/main/java/com/seikim/memberservice/controller/MemberController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
package com.seikim.memberservice.controller; | ||
|
||
import org.springframework.http.HttpStatus; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.PostMapping; | ||
import org.springframework.web.bind.annotation.PutMapping; | ||
import org.springframework.web.bind.annotation.RequestBody; | ||
|
||
import com.seikim.memberservice.common.MemberRestController; | ||
import com.seikim.memberservice.dto.MemberSaveRequest; | ||
import com.seikim.memberservice.service.MemberService; | ||
import com.seikim.mysqlmemberdomain.domain.Member; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
@RequiredArgsConstructor | ||
@MemberRestController | ||
public class MemberController { | ||
private final MemberService memberService; | ||
|
||
@PostMapping("/v1/member/save") | ||
public ResponseEntity<Integer> save(@RequestBody final MemberSaveRequest request) { | ||
int savedMemberId = memberService.save(request); | ||
return ResponseEntity.status(HttpStatus.CREATED).body(savedMemberId); | ||
} | ||
|
||
@PutMapping("/v1/member/{memberId}/like") | ||
public ResponseEntity<Integer> likeCount(@PathVariable final int memberId) { | ||
int likeCount = memberService.addLikeCount(memberId); | ||
return ResponseEntity.ok(likeCount); | ||
} | ||
|
||
@GetMapping("/v1/member/{memberId}") | ||
public ResponseEntity<Member> get(@PathVariable final int memberId) { | ||
Member findMember = memberService.findById(memberId); | ||
return ResponseEntity.ok(findMember); | ||
} | ||
} |
12 changes: 12 additions & 0 deletions
12
...lication/member-service/src/main/java/com/seikim/memberservice/dto/MemberSaveRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package com.seikim.memberservice.dto; | ||
|
||
import com.seikim.mysqlmemberdomain.domain.Member; | ||
|
||
public record MemberSaveRequest( | ||
String email, | ||
String username | ||
) { | ||
public Member toMember() { | ||
return new Member(email, username); | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
...lication/member-service/src/main/java/com/seikim/memberservice/service/MemberService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package com.seikim.memberservice.service; | ||
|
||
import com.seikim.memberservice.dto.MemberSaveRequest; | ||
import com.seikim.mysqlmemberdomain.domain.Member; | ||
|
||
public interface MemberService { | ||
|
||
int save(MemberSaveRequest request); | ||
|
||
int addLikeCount(int memberId); | ||
|
||
Member findById(int memberId); | ||
} |
45 changes: 45 additions & 0 deletions
45
...er-service/src/main/java/com/seikim/memberservice/service/impl/MemberLockServiceImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package com.seikim.memberservice.service.impl; | ||
|
||
import org.springframework.context.annotation.Primary; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
import com.seikim.memberservice.dto.MemberSaveRequest; | ||
import com.seikim.memberservice.service.MemberService; | ||
import com.seikim.memberservice.service.utils.MemberServiceUtils; | ||
import com.seikim.mysqlmemberdomain.domain.Member; | ||
import com.seikim.mysqlmemberdomain.repository.MemberRepository; | ||
import com.seikim.redisredlock.RedissonLock; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
@Primary | ||
@Transactional(readOnly = true) | ||
@RequiredArgsConstructor | ||
@Service | ||
public class MemberLockServiceImpl implements MemberService { | ||
|
||
private final MemberRepository memberRepository; | ||
|
||
@RedissonLock(key = "#memberId") | ||
@Transactional | ||
@Override | ||
public int addLikeCount(final int memberId) { | ||
Member findMember = MemberServiceUtils.findById(memberRepository, memberId); | ||
findMember.addLikeCount(); | ||
return findMember.getLikeCount(); | ||
} | ||
|
||
@Transactional | ||
@Override | ||
public int save(final MemberSaveRequest request) { | ||
Member member = request.toMember(); | ||
Member savedMember = memberRepository.save(member); | ||
return savedMember.getId(); | ||
} | ||
|
||
@Override | ||
public Member findById(int memberId) { | ||
return MemberServiceUtils.findById(memberRepository, memberId); | ||
} | ||
} |
41 changes: 41 additions & 0 deletions
41
...member-service/src/main/java/com/seikim/memberservice/service/impl/MemberServiceImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package com.seikim.memberservice.service.impl; | ||
|
||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
import com.seikim.memberservice.dto.MemberSaveRequest; | ||
import com.seikim.memberservice.service.MemberService; | ||
import com.seikim.memberservice.service.utils.MemberServiceUtils; | ||
import com.seikim.mysqlmemberdomain.domain.Member; | ||
import com.seikim.mysqlmemberdomain.repository.MemberRepository; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
@Transactional(readOnly = true) | ||
@RequiredArgsConstructor | ||
@Service | ||
public class MemberServiceImpl implements MemberService { | ||
|
||
private final MemberRepository memberRepository; | ||
|
||
@Transactional | ||
@Override | ||
public int addLikeCount(final int memberId) { | ||
Member findMember = MemberServiceUtils.findById(memberRepository, memberId); | ||
findMember.addLikeCount(); | ||
return findMember.getLikeCount(); | ||
} | ||
|
||
@Transactional | ||
@Override | ||
public int save(final MemberSaveRequest request) { | ||
Member member = request.toMember(); | ||
Member savedMember = memberRepository.save(member); | ||
return savedMember.getId(); | ||
} | ||
|
||
@Override | ||
public Member findById(int memberId) { | ||
return MemberServiceUtils.findById(memberRepository, memberId); | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
...mber-service/src/main/java/com/seikim/memberservice/service/utils/MemberServiceUtils.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.seikim.memberservice.service.utils; | ||
|
||
import com.seikim.mysqlmemberdomain.domain.Member; | ||
import com.seikim.mysqlmemberdomain.repository.MemberRepository; | ||
|
||
public class MemberServiceUtils { | ||
private MemberServiceUtils() { | ||
throw new IllegalStateException("Utility class"); | ||
} | ||
|
||
public static Member findById(MemberRepository memberRepository, int id) { | ||
return memberRepository.findById(id) | ||
.orElseThrow(() -> new IllegalArgumentException("Member not found")); | ||
} | ||
} |
9 changes: 9 additions & 0 deletions
9
241020/redislockmanger/application/member-service/src/main/resources/application-eureka.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
eureka: | ||
instance: | ||
instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}} | ||
hostname: 127.0.0.1 | ||
client: | ||
register-with-eureka: true | ||
fetch-registry: true | ||
service-url: | ||
defaultZone: http://127.0.0.1:8761/eureka/ |
45 changes: 45 additions & 0 deletions
45
241020/redislockmanger/application/member-service/src/main/resources/application-mysql.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
spring: | ||
jpa: | ||
open-in-view: false | ||
--- | ||
spring: | ||
config: | ||
activate: | ||
on-profile: | ||
- local | ||
- default | ||
jpa: | ||
properties: | ||
hibernate: | ||
show_sql: true | ||
format_sql: true | ||
hibernate: | ||
ddl-auto: create-drop | ||
datasource: | ||
driver-class-name: org.h2.Driver | ||
url: jdbc:h2:mem:db | ||
username: sa | ||
password: | ||
h2: | ||
console: | ||
enabled: true | ||
path: /h2 | ||
--- | ||
spring: | ||
config: | ||
activate: | ||
on-profile: | ||
- mysql | ||
jpa: | ||
# properties: | ||
# hibernate: | ||
# show_sql: true | ||
# format_sql: true | ||
hibernate: | ||
ddl-auto: create | ||
datasource: | ||
driver-class-name: com.mysql.cj.jdbc.Driver | ||
url: jdbc:mysql://localhost:3307/redis | ||
username: root | ||
password: 1234 | ||
--- |
5 changes: 5 additions & 0 deletions
5
241020/redislockmanger/application/member-service/src/main/resources/application-redis.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
spring: | ||
data: | ||
redis: | ||
host: localhost | ||
port: 6379 |
11 changes: 11 additions & 0 deletions
11
241020/redislockmanger/application/member-service/src/main/resources/application.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
server: | ||
port: 0 | ||
|
||
spring: | ||
application: | ||
name: member-service | ||
config: | ||
import: | ||
- application-eureka.yml | ||
- application-mysql.yml | ||
- application-redis.yml |
Oops, something went wrong.