본문 바로가기

스프링부트 AppicationContext 기본적으로 빈 팩토리 역할을 하며주로 빈, 리소스에 접근할 때 사용한다. public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver {AppicationContext가 상속하는 인터페이스들을 구현해 조금더 세분화되고, 명료하게 리소스 관련 접근을 처리할 수 있다.
@ComponentScan(컴포넌트 스캔) 1. 스캔 위치 설정 (--> 문자열로 정하는 것보다는, 클래스로 정하는 것 추천)2. 필터: 스캔할, 하지 않을 어노테이션 설정
스프링 빈 객체 사용 클래스 - AppicationContext ApplicationContext1. ClassPathXmlApplicationContext(xml)2. AnnotationConfigApplicationContext(Java)
스프링 여러가지 의존성 주입(DI) 방법 public class A { B b; public void setB(B b) { this.b = b; } } --> 의존성 주입 혹은 ==================================================== @Beanpublic class A{ @Autowired --> 의존성 주입 B b; } 혹은@Configuration public class AppConfig { @Bean public A a() { return new A(); } @Bean public B b() { return new B(); } } 혹은 @Configuration @ComponentScan(basePackages = "com.example.demo") public class AppConfig { } 혹은..
스프링 Bean(빈) 사용하는 이유, 장점 평소 무의식적으로 사용했지만, 도저히 와닿지 않았던 빈 사용의 장점을 알게되었습니다. 의존성을 주입해주고, 라이프사이클의 여러 시점에 쉽게 접근한다는 점을 공부할 때 보긴 했지만,사실 별로 와닿지 않았습니다. 백기선님의 유료 강좌를 구매하여 보기 시작했는데,스프링에서 빈을 등록하여 사용하면 아래와 같은 장점이 있다고 하네요. 1. 스프링 Ioc 컨테이너에서는 모든 빈들을 싱글톤 객체로 생성합니다.(scope 옵션으로 해제 가능)(참고로, 객체를 매번 생성하는 타입을 프로토타입이라고 합니다.) 자원을 많이 사용하는 db 접근 객체들은 싱글톤으로 사용하는 게 좋은데,저 선언 하나만으로 싱글톤으로 객체를 관리한다고 하네요. 2. 의존성 주입pass 3. 라이프 사이클 관리가 용이: 쉽게 여러 시점에 접근가능합..
스프링 핸들러 매핑(Handler Mapping)이란 많이 들어는 봤지만, 정확히 뭔지 알아본 적이 없어서 정리해본다. dispatcherServlet으로 받은 요청을 Controller로 보내지는데,그런 요청이 어떤 룰으로 컨트롤러에게 보내는지(매핑하는지), 그 방법을 정해주는 클래스가 바로 Handler다. 다시말해 http://localhost:8080/test라는 요청이 있고,임의의 컨트롤러 HomeControllerd에서@Controller class HomeController { @RequestMapping(value = "/test") public String test() { return "test"; } } 위와같이 RequestMappirng으로 무의식적으로 url과 연결지어 준 게 그냥 된 것이 아니라핸들러가 있어서 가능했던 것이다. 스프..
jquery append() 이벤트가 쌓일 때 ,preventDefault()가 작동하지 않을 때(preventDefault() is not working) 동적으로 영역을 불러올 때그 추가된 영역에 관한 이벤트를 함수로 등록할 경우, 불러올때마다 해당 함수를 등록해주어야 한다. 나 같은 경우는 영역에 클래스를 주어 .each()로 이벤트를 전체로 주는 방식을 사용했는데이런 문제가 발생한 적이 있었다. ~~~~~ ~~~~~ ------------------------> btnFunction() 등록~~~~~ ~~~~~ ~~~~~ ------------------------> btnFunction() 등록~~~~~ ------------------------> btnFunction() 등록 function btnFunction() { $('button').each(function() { $(this).on('click', function() { ~~~~~~~~..
얕은 복사 List l1 = new ArrayList(); l1.add(1); l1.add(1); l1.add(1); /** * 얕은 복사(주소값 복사) * ---> 이제부터 l1, l2는 한 몸처럼 취급 */ List l2 = l1; l2.add(1); l2.add(1); l2.add(1); l2.add(1); l2.add(1); System.out.println("l1의 사이즈: " + l1.size()); System.out.println("l2의 사이즈: " + l2.size()); System.out.println("------------------------"); System.out.println("l1: " + l1); System.out.println("l2: " + l2); 출력결과 직관적으로 생각..