일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Do It 정직하게 코딩하며 배우는 딥러닝 입문
- 기계학습
- Dependency Injection
- 딥러닝
- 스프링
- 강좌 정리
- jetbrains
- 스프링 프레임워크
- 강화학습
- 노션
- database error
- 노드
- 비지도학습
- Proxy 패턴
- PSA
- @Autowired
- express-generator
- IoC 컨테이너
- syncronized
- 스프링 빈
- krpano
- 프레임워크
- 스프링부트 에러
- 노션 Formula
- aop
- express
- 의존성주입
- 백기선 강좌
- 지도학습
- timezone error
- Today
- Total
목록개발 & 공부/스프링 (6)
hyungmuk's blog
PSA (Portable Service Abstraction) 스프링 트라이앵글 중에 한 구성요소. 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하려는 추상화 구조 서비스 추상화 서블릿을 로우 레벨로 직접 사용하지 않아도 된다. (HttpServlet을 직접 사용하지 않아도 됨) 매핑을 간편하게 할수 있다. 코드를 거의 변경하지 않고 완전히 다른 기술 스택으로 실행할 수 있다. (ex. Spring 5 WebFlux) 편의성을 제공해 주기 위해 서비스 추상화를 한다. PSA의 예 @Controller | @RequestMapping | ... Servlet | Reactive 톰캣, 티, 네티, 언도토우 @Transactional JpaTransactionManager | Datasou..
5. AOP 애노테이션 애노테이션을 이용한 AOP를 구현하는 예제이다. 만든 것 @LogExecutionTime 애노테이션 메서드에 @LogExecutionTime 가 붙어있으면 해당 메서드의 기능을 측정 소스코드 OwnerController.java @GetMapping("/owners/find") @LogExecutionTime public String initFindForm(Map model) { model.put("owner", new Owner()); return "owners/findOwners"; } 먼저 컨트롤러에 있는 메서드에 @LogExecutionTime를 붙였다. @LogExecutionTime에 커서를 두고 인텔리제이 에서 Alt + Enter 를 사용하여 LogExecutionT..
IoC, AOP, PSA를 스프링 트라이앵글이라고 한다. 그중에 IoC는 저번 시간에 했고, 이번 시간에는 AOP에 대해서 알아본다. AOP의 사전적 의미 Aspect Oriented Programing : 관점 지향적인 프로그래밍 AOP를 구현하는 방법은 3가지가 있다. 컴파일을 이용하는 방법 A.java가 A.class로 컴파일 될 때 AspectJ를 이용하여 AOP를 구현한다. 바이트코드를 조작하는 방법: 컴파일된 A.class가 메모리에 올라갈 때 AspectJ를 이용하여 AOP를 구현한다. 프록시 패턴을 이용한 방법 이 방법이 스프링에서 사용되는 AOP 방법이다. 프록시(Proxy)에 대해서는 프록시 패턴을 설명하고 있는 글 https://refactoring.guru/design-pattern..
의존성 주입 방법 생성자, 필드, Setter 중 한곳에 @Autowired 어노테이션을 사용한다. @Autowired 생성자에서의 사용 @Autowired public OwnerController(OwnerRepository clinicService) { this.owners = clinicService; } 스프링 4.3 부터 생성자에서 사용할때 @Autowired를 생략 할 수 있다. public OwnerController(OwnerRepository clinicService) { this.owners = clinicService; } 필드에서의 사용 @Autowired private OwnerRepository owners; Setter에서의 사용 @Autowired public void set..

빈이란 ? 객체인데 IoC 컨테이너가 관리하는 객체를 말한다. 같은 OwnerController 지만 1번은 빈이 아니지만 2번은 빈이다. 왜냐하면 1번은 new가 사용 되었고 2번은 applicationContext에서 관리하는 객체를 가져온 것이기 때문이다. 빈은 applicationContext가 알고 있는객체, 즉, applicationContext가 관리하는 객체여야 한다. 이러한 '빈'들만 의존성 주입이 가능하다. 빈 등록 방법 Component Scannig @Component @Repository @Service @Controller @Configuration 직접 XML이나 자바 설정 파일에 등록 빈을 꺼내는 방법 @Autowired 또는 @Inject 사용 ApplicationConte..

IoC 컨테이너 역할 빈을 만든다. 빈들 사이의 의존성을 엮어준다 컨테이너가 가지고 있는 빈을 제공한다. 인텔리제이 IDE에서 클래스 왼쪽에 녹색 콩 표시가 있으면 빈으로 등록된 것이다. 의존성 주입은 빈 끼리만 가능하다. 즉, IoC 컨테이너에 들어있는 객체들 끼리만 의존성 주입을 해준다. 빈을 가지고 오는 방법 @Autowired ApplicationContext applicationContext; @Test public void getBean() { applicationContext.getBeanDefinitionNames() } applicationContext 안에 모든 빈들이 들어 있다. .getBeanDefinitionNames() 메소드는 모든 빈들의 이름을 가져온다. .getBean(s:..