본문 바로가기

Dev-

스프링 빈 객체 사용 클래스 - 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 { } 혹은..
스프링 핸들러 매핑(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); 출력결과 직관적으로 생각..
리스너, 필터, 서블릿 리스너: 서버를 켰을 때 자동으로 실행되는 것 --> 요청과 상관 X 서블릿: 웹 브라우저에서 호출 가능한 자바 클래스 --> 요청과 상관 O필터: 일반적인 서블릿보다 조금 더 앞쪽에 있는 서블릿 + 역할 다름
싱글톤 객체 성능 향상 --> LazyHolder 사용 public class Singleton { private static Singleton test = new Singleton(); public static Singleton getInstance() { return test; } private Singleton() { } }--> 필요없는 메모리 낭비 발생 public class Singleton { private static class LazyHolder { public static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return LazyHolder.INSTANCE; } private Singleton() { } }--> 최초 1번 호..
MySQL에서 Merge Into(데이터가 있으면 수정, 없으면 삽입) 사용하기 쿼리를 잘 몰라, 특정 데이터가 있다면 수정, 없다면 삽입해야 하는 경우 아래와 같이 해결했다. /** * DB에 데이터가 없다면 = insert */ if (service.selectBoard(seq) == null) { service.insertBoard(board); /** * 있다면 = update */ } else { service.updateBoard(board); } Oracle에는 이를 간단히 해결하기 위해 Merge Into라는 기능이 있고,Mysql에서는 아래와 같이 사용하면 된다. INSERT INTO TB_BOARD ( COULUMN_1, COULUMN_2, COULUMN_3 ) VALUES ( VALUE_1, VALUE_2, VALUE_3 ) ON DUPLICATE KEY UPDA..