반응형
목차
RestController 😄
package study.springaoptest.web;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import study.springaoptest.model.User;
import study.springaoptest.service.TestService;
@RestController
@Slf4j
@RequestMapping("/api/v1/user")
@RequiredArgsConstructor
public class TestRestController {
private final TestService testService;
@GetMapping("")
public void list() {
testService.list();
}
@PostMapping("")
public void post(@RequestBody User user) {
testService.post();
}
@DeleteMapping("")
public void delete() {
testService.delete();
}
@PutMapping("")
public void update() {
testService.update();
}
}
Service 😎
package study.springaoptest.service;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
@RequiredArgsConstructor
public class TestService {
public void post() {
log.info("등록~");
}
public void list() {
log.info("조회~");
}
public void delete() {
log.info("삭제");
}
public void update() {
log.info("수정");
}
}
Vo 😙
package study.springaoptest.model;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
}
Aop 🤗
package study.springaoptest.aop;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Aspect
@Slf4j
@Component
public class LogAspect {
@Around("execution(* study.springaoptest.service..*.*(..))")
public Object logging(ProceedingJoinPoint joinPoint) throws Throwable{
log.info("Begin Method~");
Object result = joinPoint.proceed();
log.info("end Method~");
return result;
}
}
결과 🙄
공통관심사인 2개의 로그를 찍는 기능을 AOP를 이용해 서비스의 모든 메서드에 적용했다.
해당 패키지의 서비스에 작성하는 모든 메서드 실행 시 저 로그가 찍힌다.
개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.
틀린 점 있을 경우 댓글 부탁드립니다.
reference
반응형
'IT > development' 카테고리의 다른 글
[springBoot] spring batch simple tasklet (feat. tasklet) (57) | 2023.11.09 |
---|---|
[Java] linux jdk 환경변수 세팅 (54) | 2023.10.27 |
[springBoot] springBoot 실행 시 dataSource 제외 (54) | 2023.10.14 |
[Rest API]계층구조 Rest API sample(feat. springBoot) (64) | 2023.10.10 |
[JavaScript] 객체 해체 할당(Object Destructuring Assignment)(feat. ES6) (52) | 2023.10.04 |