no image
[Spring] Servlet
@ServletComponentScan 스프링부트에서 서블릿을 사용하려면 사용한다. Annotation을 사용한 패키지부터 하위 패키지들을 스캐닝하여 서블릿을 사용할 수 있도록 해준다. 아래는 서블릿코드이다. @WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); System.o..
2022.07.20
[Spring MVC] 웹 애플리케이션 이해
쓰레드 스프링부트 톰캣 맥스 커넥션 검색하여 쓰레드 설정을 할 수 있다. 낮게 설정
2022.07.19
[Java] 클래스메서드, 인스턴스메서드
메서드 앞에 static이 붙으면 클래스 메서드이고, 붙지 않으면 인스턴스 메서드이다. 접근 방법은 클래스명.메서드명이다. static 특징 1. 모든 인스턴스에 공통으로 사용하려는 것 - 같은 값이 유지되어야 하는 변수의 경우 static을 붙인다. 2. 인스턴스를 따로 생성하지 않아도 메모리에 올라갈 때 자동 생성이 된다. 3. 클래스 메서드에서는 인스턴스 변수를 사용할 수 없다. 그러나 인스턴스 메서드에서는 static 멤버 사용이 가능하다. 왜 그런지 알아보자. 클래스 변수의 경우에는 메모리에 올라감과 동시에 생성이 된다. 그렇다 보니 인스턴스의 생성시점보다 앞서있다. 반면에 인스턴스 메서드에서 클래스 메서드를 사용할 수 있는 이유는 생성시점이 뒤에 있다 보니, 이미 생성된 클래스 변수는 사용이 ..
2022.07.14
[Spring] 의존관계 자동 주입
@ComponentScan을 통해 패키지 스캔중 @Component가 있으면 스프링빈 등록이 되고, @Autowired가 있는경우에 스프링빈으로 등록이 된것을 찾아 의존관계 주입을 한다. ​ 여기서 의존관계 주입 방법이 몇가지 있다. 1. 생성자 주입 - 생성자를 통하여 의존 관계를 주입 - 생성자 호출 시점 한번만 호출 되는것을 보장 - final 키워드 사용가능하여 null 방지 가능 ( final : 값이 무조건! 초기화 되어야 한다는걸 의미 ) - 불변, 필수 의존관계에 사용 @Component public class OrderServiceImpl implement OrderService{ private final MemberRepository memberRepository; private fin..
2022.07.14
[Spring] ComponentScan
ComponentScan이란? @Component 어노테이션을 사용한 클래스들을 스프링빈으로 등록하기 위해서, 그 범위를 정하는 상위 어노테이션이다. ​ AppConfig.java에 @Configuration과 @Bean을 통해 스프링 컨테이너에 싱글톤으로 객체를 등록을 했다. ​ 하지만, 객체를 만들게 많아질 수록 코드는 길어진다. 이건 번거로운 일이다. ​ 그래서 빌드가 될때 자동으로 스프링빈을 등록해주는 방법이 있는데, ​ 그게 @ComponentScan을 통해서 할 수 있다. 또, 뒤에서 공부하겠지만 @Autowired라는 기능도 제공받아 의존관계 주입을 받을 수 있다. ​ AutoAppConfig.java package hello.core; @Configuration @Componentscan ..
2022.07.14
[Spring] 싱글톤
싱글톤이란 객체의 인스턴스가 오직 하나만 생성되어 사용하는것 public class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} // 생성자는 외부에서 생성못하게 private 지정 public static Singleton getInstance() { return instance; } } 위 코드는 싱글톤이 유지되는 인스턴스이다. 장점 무분별한 객체 인스턴스를 생성하지 않아도 된다. 메모리 측면에서 굉장히 효율적 이미 만들어진것을 사용하다보니 사용속도에서도 이점 클래스 인스턴스이기때문에 데이터 공유하기에 쉽다. 싱글톤 주의점 싱글톤 사용하여 공유필드를 사용하면, 문제가 생긴다. 1. Stat..
2022.07.13
no image
[Spring] @Configuration, @Bean, Application
Spring Container에 Bean들을 등록을 하려면 아래와 같이 하면 된다. @Configuration은 @Bean을 등록하기 위하여 쓰는 어노테이션이다. 2022.07.13 - [개발/스프링] - [Spring] 싱글톤 좌측 게시글에서 싱글톤에 대해 확인 가능하다. @Bean이라고 붙은 메소드를 호출 해서 반환한 객체를 스프링 객체로 등록한다 ( 반환된 객체가 springBean ) ​ 즉, @Configuration을 쓰면 내 안에 있는 @Bean들을 객체로 등록할 것이다. 라는 의미 또 중요한 역할은 등록된 Bean들을 싱글톤으로 관리되도록 보장 해준다. ​ @Configuration을 쓰지 않고 @Bean만 써도 객체는 생성되지만 싱글톤으로 되진 않는다. 기존에 AppConfig를 생성해서..
2022.07.13
[Spring] DI 란
DI란 의존관계 주입을 의미 ※Dependency Injection의 줄임말 ​ 객체가 다른 객체를 사용하기 위하여 본인 스스로 다른 객체를 생성하는것이 아닌 외부로부터 주입 받는 것을 의미 ​ 의존관계 주입의 방법에는 몇가지가 있다. ( 미리 말하자면 생성자 주입을 권고한다. ) 생성자 주입 필드 주입 setter 주입 @Component class OrderServiceImpe{ private DiscountPolicy discountPolicy = new RateDiscountPolicy(); } 위 코드의 경우가 본인 스스로가 다른 객체를 사용하기 위하여 객체를 생성한 것이다. new RateDispolicy(); @Component class OrderServiceImpl{ private Dis..
2022.07.13