[Spring] @Resource, @Autowired, @Inject 차이
·
STUDY/SpringLegacy
@Resource, @Autowired, @Inject는 모두 의존성 주입(DI)을 위한 어노테이션이지만, 작동 방식, 지원 프레임워크, 객체 검색 방식 등에서 차이점을 가지고 있습니다.  구분@Resource@Autowired@Inject지원 프레임워크JavaSpringJava, Spring객체 검색 방식이름 기반 (기본), 타입 기반 (선택)타입 기반타입 기반필드 설정setter, 필드setter, 생성자, 필드setter, 생성자, 필드널 허용허용 (기본), @Required 사용 시 필수불허용불허용스프링과의 연동별도 설정 필요기본 제공별도 설정 필요 (선택)사용 시점초기화 후객체 생성 시점초기화 후 또는 객체 생성 시점 @ResourceJava에서 제공하는 어노테이션으로, 스프링 프레임워크에 종속..
[Spring] [JS] SSE (Server-Sent Events) 사용하기
·
STUDY/SpringLegacy
SSE (Server-Sent Events)SSE는 서버와 클라이언트 간의 단방향 푸시 방식의 실시간 통신 방식으로, 클라이언트가 서버에 지속적으로 연결을 유지하면서 서버로부터 데이터를 수신할 수 있습니다. 이는 챗방, 주식 시세, 경기 결과 등 실시간으로 변화하는 데이터를 제공하는 데 적합합니다. SSE는 다음과 같은 장점을 제공합니다.실시간 업데이트 제공: 클라이언트가 페이지를 새로고침하지 않고도 서버로부터 최신 데이터를 받아볼 수 있습니다.낮은 대역폭 사용: SSE는 HTTP 요청/응답 방식을 사용하기 때문에 WebSockets보다 대역폭 사용량이 적습니다.쉽게 구현 가능: Spring SSE는 Spring 프레임워크에서 제공하는 SseEmitter 클래스를 사용하여 쉽게 구현할 수 있습니다.SSE..
[Spring] Log4j2 설명
·
STUDY/SpringLegacy
자바를 하게되면 콘솔에 데이터를 출력하기 위해 System.out.println()을 사용합니다. 하지만 스프링에서는 이를 사용할 필요없이 log4j라는 라이브러리가 로그 관련한 기능들을 관리해줍니다. 이 글은 STS(Spring toos Suite)로 생성한 스프링 프로젝트 기준으로 작성되었습니다. STS를 이용하여 프로젝트를 생성하는 방법은 가장 하단에 관련 글을 포스트합니다. 이 글은 자바웹을 다루는 기술 책을 참고하여 작성하였습니다. log4j 스프링으로 개발할때 보면 콘솔에 위와 같은 엄청 많은 로그들이 출력되는데 이 모든게 log4j 덕분입니다. 개발할 당시에 사용했던 로그 메시지들은 실제로 서비스할 때 전혀 필요없게 됩니다. 그럴 경우 일일이 찾아서 해당 로그들을 삭제해주어야 하는데 이는 번..
[Spring] Log4j2 사용해 상세한 SQL 쿼리 로그 출력 설정
·
STUDY/SpringLegacy
STS Console 창에서 SQL 쿼리 Log를 자세히 출력을 위한 설정  log4j.xml 에서 Root Looger 의 value를 debug로 수정할 경우 실행된 sql문을 확인 할수있으나execute query : SELECT * FROM TABLE WHERE ID = ?와 같이 실행된 쿼리문에 파라미터를 함께 표현하지 않는 점과,미리 결과내용을 보지 못하는 점에서 불편함을 느낄수있다.이때 아래와 같이 설정할 경우 자세한 sql 로그를 설정하여 출력할수있어 편리해진다.  1.pom.xml 의존성추가 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4 1.16 2. root-context.xml (또는 dataSource-context...
[Spring] Lombok 설치 및 STS 연동하기
·
STUDY/SpringLegacy
Lombok이란 자동으로 기본적인 상용구를 생성 해 줌으로써코드량을 줄이는데 도움을 주는 Java 어노테이션 라이브러리입니다. 객체 클래스에 @Data 어노테이션만 달면,Getter/Setter/Equals/ToString과 같은 메서드를 자동으로 생성/연결해 줍니다.  Lombok 다운로드 하기1. Dependency를 직접 입력하여 Maven을 통해 다운 받는 경우https://mvnrepository.com/artifact/org.projectlombok/lombok 접속합니다.원하는 버전을 선택합니다Maven탭의 dependency 내용을 복사합니다pom.xml에 태그 하위에 복사한 내용을 붙입니다.+ 사이트에서 직접 다운받는 경우 아래 링크에서 다운받으면 됩니다.h..
[Spring] mybatis Parameter '파라미터명' not found 에러
·
STUDY/SpringLegacy
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '파라미터명' not found. Available parameters are [arg1, arg0, param1, param2] 발생 원인MyBatis를 이용한 SQL Mapper의 메소드는 하나의 파라미터만을 읽음.즉, 파라미터의 개수가 2개 이상일 때 발생. 해당 데이터가 어떤것인지 명시하지않으면 에러 발생함  해결방안@Param 어노테이션 사용파라미터명, 바인딩될 변수명을 arg0, arg1, ....... 으로 맞춰주기파라미터명, 바인딩될 변수명을 param1, p..
[Spring] 정적 리소스(Static Resources) 설정 방법
·
STUDY/SpringLegacy
Spring은 기본적으로 JSP 등 동적인 페이지와는 달리 HTML, CS, JavaScript 등 정적인 리소스에 대한 접근을 막는다. 정적인 리소스를 서비스해야 한다면 스프링Ioc 컨테이너 XML (servlet-context.xml ...) 에 설정을 추가함으로써 접근을 허용할 수 있다. servlet-context.xmlmapping : 매핑 URI 설정location : 정적 리소스 위치 설정 를 통해 접근을 허용해준다. 여기서 '**'은 하위 폴더 아래의 파일까지 모두 포함함을 의미한다. resource에 넣고 아래와 같이 사용할 수 있다. 위와 같이 설정해주면 /js/test.js 라는 클라이언트의 요청이 들어오면이것을 /resouces/j..
[Spring] mybatis camelCase 적용하기
·
STUDY/SpringLegacy
mybatis camelCase 적용하기 mybatis-config.xml     mapUnderscoreToCamelCase : 이번 적용의 목표callSettersOnNulls : 쿼리 결과 필드가 null인 경우, 누락이 되서 나오는데 누락이 안되게 하는 설정jdbcTypeForNull : 쿼리에 보내는 파라메터가 null인 경우, 오류 발생하는 것 방지  예) #{search.user}  출처 :https://ayoteralab.tistory.com/entry/Spring-Boot-10-mybatis-camelCase-%EC%A0%81%EC%9A%A9