본문 바로가기

Spring5

[Spring] Spring기반 웹 사이트 템플릿 만들기 - 3. Spring Security 리소스 DB 연동 이 내용을 간략하게 저장하자면 configure 메소드내 authorizeRequests의 설정을 DB에 넣어버린다고 보면 될 듯. URL에 설정된 Role정보에 따라 접근을 허가할지 말지를 판단하는 기능을 넣기 위해 FilterSecurityInterceptor 설정을 한다. Egov에서는 메소드나 AOP 정보도 DB에 저장하여 연동할 수 있지만 그 수준은 일반 사용자가 제어할 수 있는 범위는 아니라고 생각하기 때문에 굳이 내 프로젝트에서는 할 이유가 없다고 생각한다. FilterSecurityIntercepter는 SecurityFilterChain중 가장 마지막에 오고 인증이 완료된 뒤 자원에 대한 접근 여부를 판단하게 된다. @Bean public FilterSecurityInterceptor f.. 2018. 1. 23.
[Spring] Spring Transaction 설정 DB를 다룰려면 트랜잭션이 매우 중요하다. 개념적으로는 중요성을 이해하고 있지만 실제 업무에서 트랜잭션을 관리해본적이 없다... 그래서 Transaction 설정방법과 propagation에 대해서만 작성함... 우선 context에 transactionManager빈을 추가한다. DataSourceTransactionManager는 Connection의 트랜잭션 API를 이용해서 트랜잭션을 관리해주는 트랜잭션 매니저이고 JDBC API를 이용하여 트랜잭션을 관리하는 데이터 액세스 기술인 JDBC와 Mybatis에 적용가능하다. 1. Annotation을 이용한 트랜잭션 context에 요 한줄을 추가한다. @Transactional public interface MemberService { public.. 2016. 3. 2.
[Spring] Spring Mybatis 설정 1 Spring 프로젝트를 하이버네이트로 하려고 했었는데 자료도 그다지 없고... 의지박약으로 지지부진해서 일단 Mybatis라도 잘하자라는 마음에 노선을 변경...ㅠ Mybatis와 DB 연결방식은 대략 다음과 같다. Database Connection Pool(DBCP) : JDBC를 통하여 DB에 연결할 경우, 매번 드라이버를 로드하고 Connection 객체를 가져와야하는데 매우 비효율적이다. 이를 해소하기 위해 웹 컨테이너가 실행되면서 DB와 연결된 Connection 객체를 미리 Pool에 생성해두고 필요할 때에 가져다쓰고 반환한다. DB의 부하를 줄이고 유동적으로 연결을 관리할 수 있다. SessionFactory : 단일 데이터 저장소, 안정적인 스레드를 위한 목적으로 사용된다. Session.. 2016. 2. 17.
[Spring] Spring 다국어 지원 Spring Validator를 사용하려고 보니 messae.properties 파일을 이용하여 문구를 표시하는 예제가 많았다. ResourceBundleMessageSource 인터페이스를 이용한 것인데, 원래는 주로 다국어 처리를 위해 사용된다. MessageSource만 이용하려다가 LocalResolver도 이용하여 다국어 지원 설정도 추가했다. 1. LocalResolver LocalResolver는 3가지 종류가 있다. - root-context.xml -- AcceptHeaderLocaleResolver은 Spring에서 기본(Default)로 된것으로 굳이 root-context.xml에 추가하지 않아도 작동한다. HTTP 요청 헤더의 Accept-Language를 참고한다. -- Cook.. 2015. 12. 2.
[Spring] Spring + Hibernate 설정 방법 고찰? 구글링으로 Hibernate 설정법을 찾다보면 HibernateUtil이라는 class를 만들어서 사용하는 경우가 있고 아닌 경우도 있다. 1. HibernateUtil 사용 출처 : 생활코딩 - https://opentutorials.org/module/1281/8278 public class HibernateUtil { private static SessionFactory sessionFactory; private static String configFile = "hibernate.cfg.xml"; static { try { Configuration cfg = new Configuration().configure(configFile); StandardServiceRegistryBuilder sb = .. 2015. 11. 24.