라벨이 spring인 게시물 표시

LogBack 설치하기

log4j 관련설정을 걷어낸후 아래와 같이 구성한다. logback 구성 "logback-core" - 말 그대로 주요기능이 모두 들어있는 핵심 코어 컴포넌트 입니다. "logback-classic" - "slf4j" 에서 사용이 가능하도록 만든 플러그인 컴포넌트 입니다. “logback-access“ - 사용하는 어플리케이션이 “웹 어플리케이션“일 경우 빛을 발하는 컴포넌트 입니다. slf4j 구성 "slf4j-api" - 로깅 Facade 객체이다. 로깅에 대한 추상 레이어를 제공하는것이고 java로 따지면 interface 집합을 나타낸다. 당연히 혼자 사용할 경우 구현 객체가 없어 에러가 발생한다. "jcl-over-slf4j" - 겉은 JCL(jakarta common logging)같지만 내부에서는 SLF4J API를 호출하도록 일종의 어댑터 나 다리 역할을 해주는 라이브러리 "log4j-over-slf4j.jar" - 파일을 압축해제하면 “log4j.jar” 와 동일한 패키지, 클래스가 존재 합니다. 즉, 패키지, 클래스를 동일하게 해서 구현체 클래스를 fake하는 것입니다. 그렇게 호출된 로그정보(메세지, 로그레벨…) 는 SLF4J에게 전달하고 바인딩된 “LOGBack“이 실제로 로그를 Write하는 것입니다. slf4j-jc.jar - 출력시 fake 하는 클래스 - maven pom 설정                   org.slf4j             slf4j-api             ${org.slf4j.version}                             org.slf4j             jcl-over-slf4j             ${org.slf4j.version}             runtime          ...

Task:Excutor 와 @Async

@Service public class ModuleProposeBoxMailService{ @Autowired private JavaMailSender mailSender; @Autowired private TaskExecutor taskExecutor; public void sendMail(Map<String, Object> paramMap) {        taskExecutor.execute(new Task(paramMap)); } private class Task implements Runnable {        private Map<String, Object> paramMap;        public Task(Map<String, Object> paramMap) {            this.paramMap = paramMap;        }        public void run() {         boolean isSend=false; try { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper;         File attachFile = null;         if(paramMap.get("attachFile")!=null&&!((String)paramMap.get("attachF...

DBCP, C3PO 커넥션 유지 하기

JDBC 커넥션 풀을 지원하는 대표적인 오픈소스 중에 아파치  DBCP 와  C3P0 가 있다. 이들은 Spring, Hibernate 등과 통합되어 DB 커넥션 풀을 제공하는 DataSource를 구성하여 자주 쓰인다. 오라클이나 MySQL 등 DBMS들은 기본적으로 특정 시간동안 실행이 없으면 해당 세션을 종료하게 된다. 이렇게 종료된 커넥션은 어플리케이션에서 오류를 발생시키게 되므로 커넥션을 유지하기 위한 별도 설정을 필요로 하게 된다. 커넥션을 얻어올 때 커넥션 테스트를 수행하고 실패하면 새로운 커넥션을 생성할 수 있다. 또한 idle 타임에 주기적으로 커넥션 테스트를 수행할 수도 있다. 아래는 dbcp를 이용하여 구성한 스프링 DataSource 설정의 예이다. <bean id="dataSource" class=" org.apache.commons.dbcp.BasicDataSource " destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="defaultAutoCommit" value="true"/> <property na...