목록Spring Framework (79)
seo92iy
쉘을 시작할 때 실행 alias 단축키 느낌 ex) allias l='ls -al' -> l 입력하면 ls -al 이 실행된다. nano .bashrc 에 추가 마지막 줄에 추가하면 되는데 예를 들어 hi 추가 하면 bash 실행(terminal실행해도 동일)하면 hi 출력 다중 사용자 id id 다 출력 who 현재 시스템에 접속한 사용자 출력

cron 파일 정기적으로 백업, 전송 등등 m h dom mon dow command */1 * * * * command -> 1분에 한번 command 실행 ex) */1 * * * * date >> date.log -> date.log 에 현재시간 1분에 한번씩 저장 tail -f date.log 하면 추가되는 줄 바로 확인 가능 ex) */1 * * * * date >> date.log 2>&1 에러발생시 date.log에 함께 저장 2 = 표준 에러 1 = 표준 출력 10 1 -> 1시 10분에 실행 cron 으로 할 수 있는 일 사용자 글 작성 요청 -> 서버 ->확인 -> 사용자 글 작성 완료 서버-> 글 정보 저장 -> cron -> 백그라운드에서 10만명에게 메일로 저장 알림 전송

@Autowired를 이용한 압축 @Autowired private SqlService sqlService; public void setSqlService(SqlService sqlService) { this.sqlService = sqlService; } private SqlService sqlService; @Autowired public void setSqlService(SqlService sqlService) { this.sqlService = sqlService; } 둘 다 성공하긴 하는데 두 개 차이가 있을까. 관련 메소드가 여러개 생길 수 있으니까 위쪽으로 하는게 맞을까. 밑 방식으로 하면 애노테이션 여러개 써야하고 위 방식으로 하면 애노테이션 한번만 하면 되긴 하겠네 @Autowired p..
XML 없애기 - 애노테이션 활용 @Configuration (빈 후처리기가 @PostConstruct 같은 애노테이션 실행) 를 사용하지 않아도 된다. 컨테이너가 직접 후처리기를 등록해주기 때문이다. @Bean public 타입 - 클래스 그대로 사용해도 되지만 다른 빈이 이 빈을 어떤 타입으로 알고 있는지가 중요하다. 메소드 이름 - id 변수 타입 - 구현 클래스 타입 프로퍼티 값 set~~으로 넣어주고 다른 빈 오브젝트를 프로퍼티에 주입할 때는 주입해 줄 빈의 메소드를 직접 호출해서 리턴값을 수정자 메소드에 넣으면 된다. return 변수 @Resource Database embeddedDatabase; @Autowired와 유사한 기능. Autowired는 타입을 기준으로 빈을 찾고 Resour..
OxmSqlService 안에 OxmSqlReader를 private final로 선언한다. 그리고 직접 오브젝트를 생성할 것이기 때문에 DI나 변경이 불가능하다. 이렇게 하는 이유는 OXM을 이용하는 서비스 구조로 최적화 하기 위해서. 위임 구조를 이용한 코드 중복 제거 프록시 방식처럼 하면 되는데 프록시처럼 많은 대상을 위한 것이 아니기 때문에 이 경우에는 DI를 포기하고 내장하고 있는 것 같은 방식으로 한 클래스에 묶는다. 리소스 SQL 매핑정보가 담긴 파일을 다양한 위치에서 가져올 수 있도록 하기 위해 사용. 빈이 아니라 값으로 취급된다. ResourceLoader 문자열 안에 리소스 종류와 위치를 함께 표현, 실제 Resource 타입 오브젝트로 변환 ConcurrentHashMap을 이용해서 ..
인터페이스의 경우 한 개 이상을 상속하는 것이 허용된다. 상속이 아니지만 상속의 개념으로 생각할 수 있다. 자기참조 빈 클래스 하나, 빈 하나만 등록하지만 빈 여러개 등록된 것처럼. SqlNotFoundException 추가, SqlRetrievalFailureException 수정 public class SqlNotFoundException extends RuntimeException { public SqlNotFoundException() { super(); } public SqlNotFoundException(String message, Throwable cause) { super(message, cause); } public SqlNotFoundException(String message) { s..

DAO와 SQL 분리 Map으로 모아서 정리 SQL문이 bean 태그안에 들어있는데 이것도 독립하는 편이 낫다. xjc 언마샬링 unmarshalling ( 마샬링 marshalling) XML문서 읽어서 자바의 오브젝트로 변환하는 것
테스트 메소드나 클래스에 @Transactional을 적용하면 강제 롤백을 하도록 설정되어 있다. 롤백을 원하지 않을 경우 @Rollback(false) 를 사용하면 된다. (메소드 레벨에서만 적용 가능) JUnit 단위테스트 방법 1. JUnit 뷰에 테스트 목록에서 하나 클릭하고 테스트 실행 2. 코드에서 메소드 이름 클릭하고 테스트 실행 @TransactionConfiguration 이 애노테이션 이용해서 클레스 레벨에서 롤백 속성 부여 가능 @NotTransactional , @Transactional(propagation=Propagation.NEVER) 메소드에 부여하면 해당 메소드 트랜잭션 안함 테스트는 성격별로 클래스 분리하는 것이 좋다. 단위 테스트, 통합 테스트, 학습 테스트 등..