본문 바로가기

플밍 is 뭔들/SPRING

IntelliJ에서 Spring MVC 프로젝트 생성 및 세팅 (Maven) ※ 목표 IntelliJ를 이용하여 Spring MVC 프로젝트를 생성하고 내 입맛에 맞게 프로젝트 환경을 구성하여 index.jsp 파일을 웹브라우저로 띄운다. ※ 개발 환경 Java8 InteliJ IDEA Spring 5.2.3 Maven ※ 프로젝트 생성하기 새 프로잭트 생성 버튼을 눌러주세요 Maven을 선택 한 후 create from archetype 체크가 해제된 상태로 Next 버튼을 클릭해주세요. 프로젝트 이름을 지정해주세요. 그러면 이렇게 프로젝트 생성이 완료됩니다. ※ 프레임워크 추가 프로젝트 우클릭 > Add Framework Support 버튼 클릭 Spring MVC 체크 한 후 OK 버튼을 클릭해주세요. ※ Tomcat Server 추가 프로젝트 우측 상단에 Add Confi.. 더보기
[Spring Batch] 스프링 배치 Mybatis + ( Oracle + MsSql ) 다중 DB 연동 기존 사용하던 배치는 Oracle이었다. 그리고 거기에 MsSql을 추가해야 할 일이 생겼다. 물론 될것같긴 했지만 확실하게 확인해보는게 좋을 것 같아 새 프로젝트에서 Oracle + MsSql 세팅을 간단히 해보고 정상적으로 작동하는지 확인해 보기로 했다. 프로젝트의 구조는 기존의 프로젝트 구조와 동일한 형태로 만들어 테스트했다. 1.프로젝트 생성 Eclipse -> New -> Other -> Spring Starter Project (스프링 부트 프로젝트 생성) 2,프로젝트 구조 잡기 패키지 및 설정파일을 기존 프로젝트와 최대한 동일하게 생성 3.DatabaseConfig 파일 생성 (Oracle -> 메인 데이터베이스, MsSql -> 서브 데이터베이스) Oracle Config 파일(Oracle.. 더보기
[SPRING] DI 란...? ※ DI (Dependency Injection) 란? 의존성 주입이란 말로도 쓰이며 스프링 IOC 컨테이너 핵심 개념 중 하나이며 이미 다양한 프레임워크에 적용되어 있다. 객체 간의 의존 관계를 외부의 조립기가 관리 불필요한 의존 관계를 없애거나 줄일 수 있다. 단위테스트 수행이 수월하다. 설정파일과 어노테이션을 이용하여 객체간의 의존 관계를 설정 각 객체를 빈(bean)으로 관리 ※ 그림으로 보는 DI 관계 - 의존성 주입 즉 객체를 생성하는게 아니라 객체를 외부에서 생성해서 주입시켜주는 방식 기존 객체생성법 - 특정 객체에서 A라는 객체와 B라는 객체를 직접 생성하고 있다 방법2) DI 방식의 객체생성법 - 외부에서 생성된 객체를 setter()나 생성자를 통해 사용하는 방법이다. ※ DI방법의 장.. 더보기
[SPRING] log4sql을 이용한 쿼리 로그 출력 1.라이브러리를 다운받는다. https://sourceforge.net/projects/log4sql/files/ Properties -> Java Build Path 에서 라이브러리 추가 3.사용자의 데이터베이스에 맞는 드라이버를 찾아 적용한다. http://log4sql.sourceforge.net/ 에 접속한 후 Usage에 들어가 확인 ※디비 종류에 따른 log4sql을 적용하기 위한 드라이버 클래스 JDBC TYPE Origin Your Driver Class -> log4sql Driver Class [ORACLE DRIVER CLASS] oracle.jdbc.drirver.OracleDriver -> core.log.jdbc.driver.OracleDriver [MYSQL DRIVER CLA.. 더보기
[SPRING] 마리아(Maria)DB연동 및 Mybatis 설정하기 ※ 순서 1. pom.xml에 관련 라이브러리 추가하기 2. root-context.xml에 bean 설정하기 3. mybatis관련 config파일과 쿼리가 작성될 파일 생성하기 4. DB가 연동이 됐는지 테스트 하기 ※ 구조 프로젝트의 구조는 아래와 같다. ※ 상세설명 1. pom.xml에 관련 라이브러리 추가하기 라이브러리는 안에 추가해준다. pom.xml org.mariadb.jdbc mariadb-java-client 2.0.3 commons-dbcp commons-dbcp 1.4 org.springframework spring-jdbc 4.3.9.RELEASE org.mybatis mybatis 3.4.4 org.mybatis mybatis-spring 1.3.1 2. root-context... 더보기
[SPRING & GIT] 이클립스 / 스프링 프로젝트 GitHub(깃허브)와 연동하기 1) 깃허브 홈페이지에 들어가 이클립스의 프로젝트와 연동하기 위한 repository를 생성한다. 2) 이클립스를 실행한 후 아래 버튼을 누른다. 3) Clone a Git repository를 클릭한다. 4) Clone a Git repository를 누르면 개인 깃허브의 URI와 깃허브의 아이디와 비번을 입력하는 창이 나온다. 알맞게 입력하여 PC의 깃과 깃허브에 만든 repository와 연결한다. 5) Packge Explorer로 돌아가서 프로젝트 마우스 우클릭 -> Team -> Share Project 클릭 -> 프로젝트와 PC의 Git과 연결해준다. 6) Commit과 Push를 해서 깃허브의 repository에 프로젝트를 올린다. 더보기
[SPRING] DispatcherServlet에 관하여... ※ DispatcherServlet 이란? 프론트 컨트롤러(Front Controller) 이다. Servlet 컨테이너에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 제일앞에서 처리할 수 있는 컨트롤러. ※ 동작 방식 자바 서버의 서블릿 컨테이너의 요청이 들어오면 DispatcherServlet이 해당 요청을 받는다. DispatcherServlet은 URL, 파라미터 정보, HTTP 명령 등을 참고하여 HandlerMapping를 통해 어떤 컨트롤러에게 보낼지 결정된다. DispatcherServlet이 모든 웹 요청 정보가 담긴 HttpServletRequest 타입의 오브젝트를 핸들러 어댑터에게 전달하면 핸들러 어댑터는컨트롤러가 받을 수 있는 파라미터로 적절히 변환하여 해당 컨트롤러에게 전달해.. 더보기
[SPRING] web.xml , root-context.xml , servlet-context.xml 에 관하여... 1) web.xml 설정을 위한 설정파일이다. 배포 기술자로써 영어로는 DD(Deployment Descriptor) 이다. 이 파일은 WAS(Web Application Server)가 최초 구동될 때 즉 톰켓이 최초 구동될 때 web.xml을 읽고 그에 해당하는 설정을 구성한다. 즉 각종 설정을 위한 설정파일이라고 할 수 있다. - 루트 컨텍스트로 모든 서블릿과 필터들이 공유함. root-context.xml을 정의 contextConfigLocation /WEB-INF/spring/root-context.xml - 리스너로써 루트 컨텍스트에 정의 되어있는 것들을 모든 서블릿과 필터가 공유할 수 있게 해준다고 함. org.springframework.web.context.ContextLoaderLis.. 더보기
[SPRING] 스프링 기본 프로젝트 파일 분석 1) src/main/java는 소스 코드가 모여있는 디렉토리. 2) src/main/resources는 스프링 설정파일이나 쿼리가 저장될 디렉토리 3) servlet-context.xml, root-context.xml 파일은 서블릿 관련 설정파일이다. 4) webapp 폴더 밑에는 jsp 및 js 등의 파일, 그외에 resource파일 등이 저장된다. src/main/webapp는 메이븐의 기본폴더 이다. 5) web.xml는 배포 기술자로써 영어로는 DD(Deployment Descriptor) 이다. 이 파일은 WAS(Web Application Server)가 최초 구동될 때 즉 톰켓이 최초 구동될 때 web.xml을 읽고 그에 해당하는 설정을 구성한다. 즉 각종 설정을 위한 설정파일이라고 할 .. 더보기
[SPRING] 빈(Bean) 관련해서 오류가난다면? - 빈관련 오류가 난다면 이클립스 프로젝트 아래에 Spring Elements에서 해당 빈이 생성됐는지, 어떻게 어디에 생성 됐는지를 확인해보자. 각각의 context마다 생성된 빈을 보여준다. 해당 빈이 생성된 위치라던가 중복된게 있는가 등등... 콘솔창의 에러와 Spring Elements의 정보를 이용하면 빈 관련 에러가 왜 발생했고 어떻게 해결해야 하는지, 혹은 구글에 검색하는데 도움이 될 것이다. **빈 추가하기 더보기
[SPRING SECURITY] 4.스프링 시큐리티 로그인 커스터마이징 1) 커스터 마이징을 위한 .java, .jsp CustomAuthenticationProvider.java (DB에서 사용자 불러와 권한조회 하기) - 에 추가한 클래스로써 권한확인 작업을 한 후 return result;를 하면 result의 내용이 에서 default-target-url에 선언한 컨트롤러로 넘어간다 public class CustomAuthenticationProvider implements AuthenticationProvider { @Autowired CustomService customService; @Override public Authentication authenticate(Authentication authentication) throws AuthenticationExc.. 더보기
[SPRING SECURITY] 3.스프링 시큐리티 로그인 커스터마이징 1) 커스터 마이징을 위한 security-context.xml 속성들 - 스프링 시큐리티는 속성을 이용하면 해당 페이지에서 로그인 할 수 있도록 한다. login-page 로그인 페이지 주소를 지정 username-parameter 로그인 페이지 form에 있는 username을 저장할 변수이름 지정 (ID값) password-parameter 로그인 페이지 form에 있는 password를 저장할 변수이름 지정 login-processing-url 로그인 페이지 form에 action에 입력할 주소 지정 ex) default-target-url 로그인 성공시 호출할 주소 지정 authentication-failure-url 로그인 실패시 호출할 주소 지정 always-use-default-target.. 더보기