일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ruby
- DART
- 연습문제
- html
- 반다이몰
- 인프런
- jsp
- Web
- C로 시작하는 컴퓨터 프로그래밍4판
- CSS
- nico
- 日本語
- Python
- vscode
- Flutter
- 単語
- javascript
- rails7
- 비즈니스일본어
- 일본어
- java
- Spring
- 건담
- 건담베이스
- 디지몬
- 一日一つメソッド
- 자바
- rails
- springboot
- メソッド
- Today
- Total
목록Spring (17)
AR삽질러
의존관계 주입방법 1. 생성자주입 2. 수정자주입(setter주입) 3. 필드주입 4. 일반 메서드주입 생성자주입(Constructor Injection) - 의존관계가 필수적일때 객체 생성 시점에서 의존관계를 한번에 주입 받는다.(불변, 필수 의존관계) @Component public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPo..
Component Scen - ComponentScan은 spring이 클래스의 경로를 스캔하여 Spring Bean으로 등록할 클래스를 찾는 기능이다. 컴포넌트 스캔을 사용하면 수동으로 각각의 빈을 등록하지 않아도 특정 애노테이션을 가진 클래스를 자동으로 빈으로 등록하고 관리할 수 있다. 주요 애노테이션 @Component 가장 기본적인 컴포넌드 애노테이션으로 빈을 등록할 클래스에 사용된다. @Controller MVC컨트롤러로 사용되는 클래스에 사용한다. @Service 서비스 로직을 담당하는 클래스에 사용한다. @Repository 데이터 저장소에 접근하는 클래스 DAO(Data Access Object)에 사용한다. 컴포넌트 스캔을 사용하려먼 @ComponentScan을 설정정보에 붙여 사용한다...
Spring Singleton - 특정 클래스의 인스턴스가 하나만 생성되도록 보장하는 디자인패턴이다. 예를 들어 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 매번 새로운 연결을 생성하면 리소스를 많이 사용하게 되지만 싱글톤 패턴을 사용하여 하나의 연결 객체를 공유하면 리소스를 효율적으로 사용할 수 있다. Spring Singleton Container - Bean 애플리케이션의 객체를 관리하고 처음 요청될 때 생서되며 동일한 인스턴스가 재사용된다. 특징 1) 인스턴스관리 : Bean의 생명주기를 관리, 생성, 초기화, 소멸등 2) 의존성주입 : Singleton Container는 빈간의 의존성을 관리하며 필요시 빈을 자동으로 주입할 수 있다. 3) 설정과 커스터마이징 : XML, JavaC..
BeenFactory - BeabFactory는 Spring Container의 최상위 인터페이스이자 핵심 인터페이스로 빈의 생성, 초기화, 관리, 의존성 해결 등 기본 작업을 담당한다. ApplicationContext - ApplicationContext는 BeanFacory의 확장 인터페이스로 더 고급기능을 제공하며 즉시초기화 애플리케이션 시작시 모든 싱클톤 빈이 즉시 로딩되어 초기화 된다. 국제화지원 한국 = 한국어, 영어권 = 영어 이벤트발생 이벤트를 발생시키고 모델을 편리하게 지원 환경추상화 개발, 테스트, 운영 등 다양한 환경을 구분해서 처리할 수 있다. BeanFactory는 가장 기본적인 빈 관리기능을 제공 ApplicationContext는 BeanFactory보다 많은 기능을 제공하여..
Spring Container에서 Been을 조회하는 테스트 클래스 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); - AnnotationConfigApplicaionContext 객체를 생성하고 TestConfig클래스를 파라미터로 전달하여 컨테이너를 초기화한다. (빈을 등록시키는 과정) @Configuration - 내부 클래스인 TestConfig 클래스에서 사용되는 어노테이션으로 @Bean어노테이션으로 rateDiscountPolicy(), fixDiscountPolicy()메서드는 해당 타입의 빈을 생성하고 반환한다. 부모타입으로 조회시 자식이 둘이상 있으면 중복 오류가..
빈 이름으로만 조회 public class ApplicationContextBasicFindTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("빈 이름으로 조회") void findBeanByName(){ MemberService memberService = ac.getBean("memberService", MemberService.class); Assertions.assertThat(memberService).isInstanceOf(MemberServiceImpl.class); } memberService 빈을 MemberService..
스프링빈(springBeen) - springFramework에서 관리되는 객체로 ApplicationContext를 스프링컨테이너라고 한다. - 스프링 컨테이너는 XML기반으로 만들 수도 있고 애노테이션 기반의 자바설정 클래스로 만들 수도 있다. 스프링컨테이너(springContainer) - springBeen을 생성하고 관리하는 역할을 수행하며 ApplicationContext(springBeen)을 관리하고 주입(Dependency Injection) 객체간의 의존성을 관리한다. springContainer 생성과정 1. springContainer생성(AppConfig.class -> springContainer(스프링빈 저장소) 2. AppConfig.class 3. springBeen등록 s..
B128:簡易的二次元バーコード B128:간이적이차원바코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String N = scanner.nextLine(); scanner.close(); char[][] grid = new char[3][N.length() * 3]; for (char[] row : grid) { Arrays.fill(row, '.'); } for (int i = 0; i < N.length(); i++) { int num = Character.getNumericValue(N.charAt(i)); for (int j..
이전코드에서 AppConfig클래스에서 직접 의존성을 주입하는 방법을 사용하고 MemberApp class, OrderApp class를 직접 생성하여 의존성을 주입하였다. 이전 코드의 단점은 객체의 생성과 의존성 주입을 개발자가 직접 해야하므로 코드가 복잡하고 유지보수가 어려울것이다. 이후 변경된 코드는 AppConfig class에서 @Configuration 어노테이션을 추가해 스프링 설정파일로 지정하였고 @Bean 어노테이션을 사용하여 스프링 컨테이너에 빈 객체를 등록하였다. ApplicationContext를 사용하여 스프링 컨테이너를 생성하고 필요한 Bean을 가져와 사용할 수 있게되었다. 1. Spring Bean - 스프링빈은 스프링 컨테이너에서 생성되고 관리되는 객체로 일반적으로 핵심로직..
RateDiscountPolicyTest RateDiscountPolicy : 할인정책 클래스로 discountPercent변수에 할인율을 나타내고 VIP회원일 경우에만 할인을 적용한 값을 반환하고 그외는 0을 반환한다. public class RateDiscountPolicy implements DiscountPolicy{ private int discountPercent = 10; @Override public int discount(Member member, int price){ if(member.getGrade() == Grade.VIP){ return price * discountPercent / 100; }else{ return 0; } } } RateDiscountPolicyTest : JU..