MAVENREPOSITORY 활용하기, pom.xml 설정하기 목차 MAVENREPOSITORY소개 mvnrepository.com/ 사이트 입니다. 인터넷이 되는 환경이라면 어디든지, Spring에 적합한 라이브러리를 제공해줍니다. Version과 개발환경만 맞다면 누구나 쉽게 사용할 수 있지만 반대로 환경과 라이브러리 버전과 호환이 되지 않는다면 라이브러리를 설치하여도 실행이 안됩니다. 따라서, 라이브러리를 무조건 최신으로 설치하시면 안 되며 라이브러리를 설치 후 해당 라이브러리가 실행되는지에 대해서 반드시 Test를 진행하시는 것을 추천드립니다. 사용 방법 빨간 1번을 이용하여, 자신이 찾는 라이브러리를 검색합니다. 검색결과가 도출된다면, 자신에게 알맞은 라이브러리를 선택합니다. 제 경우에는 파란 ..
스프링 프로젝트 만들기입니다. 기본적으로 톰캣 9.0과 Java1.0.8을 사용하고 있으며, Maven 방식을 이용하고 있습니다. ■ 프로젝트 만들기 프로젝트를 만드는 방법은 여러가지가 존재합니다. '무조건 이렇게 만들어야 한다.' 라는 점은 아니라는 것을 먼저 알려드립니다. new - project에서 maven Project를 찾아줍니다. 없을 경우, 제일 아랫부분 Other에서 위와 같이 검색하면 Maven Project가 검색이 됩니다. 처음은 체크만 확인해주시고 Next를 눌러줍니다. 버전은 1.0으로 맞춰줍니다. (21.05.09 기준) 같은 버전 1.0은 약 3개 정도 있으며, 이 중에서 Artifact Id가 maven-archetype-webapps를 찾습니다. Group_id는 도메인의..
Properties 이번 포스팅에서는 스프링의 기능 중 하나인, properties에 대해 설명을 갖도록 하겠습니다. 이 기능은 간단하게 표현한다면, public static final의 동일한 기능입니다. Java의 가장 기초로 구성되어 있는 이것은 누구나 알수 있듯이 같은 프로젝트 내의 누구에게나 접근허용이 가능한 절대 변하지 않는 상수 입니다. 만약, public static final을 자주 쓰지 않는 사람이라면 당연히 properties까지 생소하게 들릴 수 있는데요. 이것을 왜 사용하는지 부터 알아보도록 하겠습니다. ▶ 사용하는 이유 유지보수 용이 관리하기 편함 SERVER 패치후에도 수정이 가능 능동적 대응 가능 일단 사용하는 이유에 대해서, 손에 꼽는 이유라고한다면 유지보수입니다. publ..
LifeCycleException, Catalina Exception 해결하기 프레임워크 : 이클립스 Server : Tomcat 프로젝트를 받고 실행 했을 때, Catalina 관련 Exception Code가 발생한다. 이를 해결하기 위해서는 다음과 같은 방법을 사용하면 된다. 해당 조치는 Maven 저장소를 지우고 다시 하는 방법이며, 이 과정에 필자는 약 25분 정도 소요 되었다. 예외내용 org.apache.catalina.LifecycleException: Failed to start component StandardEngine[Catalina].StandardHost[localhost].StandardContext[/controller] 해결 방법 1. [메뉴]Window - Preferen..
출처 = 인프런 [윤재성 강사님의 스프링MVC 강의] Interceptor Spring Framework의 AOP를 활용한 Spring MVC의 요소 Interceptor는 요청 주소에 대해 관심을 갖고 요청이 발생하게 되면 요청 주소를 확인하여 Controller의 메소드를 호출하기 전이나 후에 다른 메서드를 호출 할 수 있도록 가로채는 개념 스프링은 기본적으로 WEB의 요청을 CONTROLLER가 가져가지만, AOP는 요청된 값을 전 혹은 후에 낚아채는 개념이다. 이와 비슷하게 인터셉터는 컨트롤러에게 넘어가기 전에, 값을 컨트롤러에게 넘길 것인지, 말 것인지 결정짓는 역할을 하게 된다. 요청 발생 시 호출되는 메소드의 코드가 중복 되는 부분이 있을 때 Interceptor를 처리하게 되면 피할 수 있..
전에는 jsp로 값을 넘겼다면, 이번 시간에는 jsp로부터 값을 받는 경우에 대해 설명하겠습니다. 예를 들면 회원가입을 하였을 때, 입력 값을 Spring에게 건넸을 때 받는 방식 입니다. 여러가지의 방식이 있으며, 이에 대해서는 상황에 따라 선택해서 사용하시면 되겠습니다. 첫 번째 방법 @RequestMapping("/sendTest") public String sendTest(Model model, HttpServletRequest request) { String id = request.getParameter("id"); String pw = request.getParameter("pw"); model.addAttribute("identify", id); model.addAttribute("passw..
앞에서 XML을 통해서 Controller가 인식되는 것을 확인하였습니다. 이번시간에는 JSP(View)에게 값을 넘기는 것에 대해 설명하겠습니다. 여기서 주목해야 할 것은 Model 이라는 객체입니다. Model은 JSP에서 request값과 비슷하며 JSP에서 request.setAttribute("키값", 결과 값)을 입력했다면 Spring에서는 model.Attribute("키값", 결과 값)을 입력하게 됩니다. 이제 여기서 두 가지 방법에 대해 이야기 하겠습니다. 첫 번째 방법 입니다. @RequestMapping("/replay") public String replay(Model model) { model.addAttribute("id", 30); return "list/replay"; } m..
1. 프로젝트 생성 NEW - ORTHER 2. Spring Legacy Project 생성 3. Project명 생성, Spring MVC Project 선택 4. 필수적으로 3개의 경로를 통해 도달하도록 설정 (kr.co.spring , com.co.spring 등) 4. MVC가 정상적으로 만들어졌는지 확인한다. Controller 위치와 src 안의 view 위치를 파악해둔다. Spring MVC 구조도 Client를 통해 DispatcherServlet으로 가는 것을 확인한다. DispatcherServlet이 모든 것을 관리, 실행하므로 매우 중요함을 알 수 있다. Client 의 위치에 속한다. jsp를 실행하게 되면 가장 먼저 실행하는 경로, 위치에 속한다. 그래서 들어가보면 자동으로 만들..
aop 방법, JAVA 방식에 대해 설명이다. Bean 데이터(Student, Worker) 더보기 Student.java package com.day03.Ex07; public class Student { private String name; private int age; private int gradeNum; private int classNum; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getGradeN..
실행하기 xml을 Scanner를 어떻게 받느냐에 따라서 어떻게 실행 할 수 있는지에 대한 설정이다. 이에 실행하는 방법은 매우 간단하다. xml은 2가지의 선택지가 존재한다. xml에서 6번째 줄을 보면 profile이 추가 된 것을 확인 할 수 있다. profile 설정에 따라 내가 원하는 xml을 선택 할 수 있게 도와주는 기능이다. package com.day03.Ex03; import java.util.Scanner; import org.springframework.context.support.GenericXmlApplicationContext; public class MainClass { public static void main(String[] args) { Scanner sc = new S..
실행 결과 모습 메소드를 호출하면서 그 전, 후에 갚이 추가되는 것을 확인 할 수가 있다. org.aspectj aspectjweaver 1.7.4 Porm.xml에 먼저 이것 부터 추가하고 시작한다. Proxy 라이브러리가 필요하므로 먼저 xml을 사용한다. 이러면 자동완성 기능도 활성화 되기 때문에 여러므로 좋다. 패키지에 필요한 Bean은 다음과 같다 더보기 Student.java package com.day03.Ex05; public class Student { private String name; private int age; private int gradeNum; private int classNum; public String getName() { return name; } public voi..
스프링의 중요한 특징은 1순위 의존성 주입 (DI) 그 다음 순위는 AOP(Aspect Oriented Programming, 관점 지향 프로그램)라는 기능이다. aop의 예시는 다음과 같다. 도시에서 지하철이나 버스를 타고 이동하면 환승을 하는 경우가 많다. 버스나 지하철을 타고 환승을 할 때는 매번 교통카드를 찍어줘야만 제대로 환승 처리가 된다. 가끔은 버스에서 내릴 때 카드를 접촉하지 않아서 환승 되지 않았던 경험이 종종 발생한다. 당연한 얘기지만, 우리는 어떤 목적지에 가기 위해 버스나 지하철과 같은 대중교통을 이용해서 목적지에 도착한다. 즉, 우리가 ㄱ버스나 지하철을 타는 행위의 가장 중요한 목적은 '어딘가에 초닥하는 것'이다. 그렇다면 환승 할 때마다 교통카드를 찍는 행위는 어떻게 해석해야 할..
package com.day03.Ex01; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; public class AdminConnection implements InitializingBean, DisposableBean{ private String adminId; private String adminPw; private String sub_adminId; private String sub_adminPw; public String getAdminId() { return adminId; } public void setAdminId(String adm..
이번에는 xml에서 자료를 넣지 않고 외부에서 넣은 자료를 가져오는 과정에 대해 적어봤다. xml 저장 장소에 General => File이라는 외부파일을 만들었다. admin.id = abcde admin.pw = 12345 admin.id1=superman admin.pw1=1000 자료는 오직 2개씩 총 4개. xml 형식도 아니고, 외부로부터 저장된 자료이다. package com.day02.Ex05; import java.io.IOException; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.GenericXmlApplicationContext;..
xml을 불러올 때와 끝났을 때만 불러오는 코드가 있을까? 그 방법에 대해서 xml 방식의 일부를 설명이다. package com.day02.Ex04; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.GenericXmlApplicationContext; public class MainClass { public static void main(String [] args) { GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.load("classpath:..