본문 바로가기

dev/Spring49

[Spring] Di 따라하기 4 지금 까지 객체를 생성하여 Map에 넣는 작업을 여러 가지 방법으로 진행했었는데 1. Properties File를 통해서 2. @Component 어노테이션을 통해서 추가적으로 xml 파일을 통해서 도 객체를 생성할수 있다. 이제부터 이렇게 생성하는 객체를 Bean이라고 칭하도록 하겠다. >>config.xml 에 을 통해서 객체를 생성할 수 있다. 이때 id는 Map의 key 값에 해당되고 class는 Map의 Value값에 해당이 된다. 추가적으로 라는 태그는 해당 Bean이 가지는 속성으로 매개변수라고 생각하면된다. 해당 Bean이 속성을 갖는데 이 속성이 일반 변수면 value값을 참조 변수면 ref 를 써준다. 또한 추가 적으로 Scope는 객체의 범위를 말하는 것으로 Singleton 으로 .. 2022. 6. 22.
[Spring] Di 따라하기 3 이전 1~2 까지는 Properties 객체를 통해서 config.xml 파일을 읽어와서 Map에 (K,V) 값으로 객체를 저장한 것을 getBean(String key) 또는 getBean(Class clazz) 를 통해서 가지고 와서 사용했는데 이번에는 @Component를 통해서 Map에 (K , V) 로 저장해 보도록 하겠다. 또한 Map에 저장된 객체를 통해서 해당 @Autowied / @Resource가 붙은 객체에 자동으로 주입해보도록 하겠다. >>> 1. @Component 를 통해서 Map에 객체 저장하기 -- 아래의 코드중에 doComponentScan() 함수를 집중적으로 보자면 -- ClassPath를 통해서 ClassLoader를 받아서 해당 패키지 내의 모든 클래스를 Set에 저.. 2022. 6. 22.
[Spring] Di 따라하기 2 class House{} class WoodHouse extends House{} class BrickHouse extends House{} class Window{} public class DiTest2 { Map map; public DiTest2() throws Exception{ // 지금 까지는 getObject(String key)라는 메서드를 통해서 // key 값을 받은 value에 해당하는 객체를 생성하여 리턴하였는데 // 이제부터는 Properties 파일에 정의되어 있는 모든 Class를 Map에 // 넣은 상태로 꺼내 쓰는 형식으로 만들어 보겠다. try { Properties p = new Properties(); p.load(new FileReader("HouseConfig.tx.. 2022. 6. 22.
[Spring] Di 따라하기 1 class House{} class WoodHouse extends House{} class BrickHouse extends House{} class Window{} main{ // DI 따라하기 1단계 House h = new House(); //House 라는 객체를 사용하다가 WoodHouse 라는 객체를 //사용 하려면 2부분 모두 수정해야 한다. WoodHouse wh = new WoodHouse(); //이러면 비지니스 로직을 수정해야 하는데 //이를 수정하기 위해 다음 단계로는 다형성을 이용하게 된다. //그러면 1부분만 수정을 하면된다. House wh2 = new WoodHouse(); House wh3 = new BrickHouse(); System.out.println("h = " .. 2022. 6. 22.
[Spring] Export / Import Spring 프로젝트 Export 방법 1> Export > General > Archive File > To archive File 경로 설정 후 finish' 2> 설정한 경로에 zip 파일 생성 Import 방법 1> Import > Existing Projects into Workspace 2> select archive File > zip 파일을 선택 2022. 6. 20.
[Spring] form:form 태그 공부 form:form 태그란 >> Spring에서 제공해주는 태그라이브러리로 아래의 태그라이브러리를 import 해주면 된다. 사용방법으론. >> 아래와 같은 형태가 기본형태이다. >> "action 속성"을 명시하지 않으면 현재 페이지의 URL을 Action 속성값으로 가진다. >> method의 default는 POST 방식이다. ex) 현재 페이지의 URL이 " localhost/ch2/register/add " 인경우 POST 요청을 보내면 " localhost/ch2/register/add " 동일한 주소의 POST 방식으로 요청이 들어간다. /register/add 요청이 GET 방식일때는 윗부분에 맵핑되고. /register/add 요청이 POST 방식일떄는 아래부분에 맵핑이된다. 추가 적으로 .. 2022. 6. 19.
[Spring] 데이터 검증 데이터 검증 >> 데이터 검증은 GET/POST 방식으로 요청이 온데이터를 >> WebDataBinder에서 ①타입변환이 끝난 후에 해당 데이터가 정당한 데이터 인지 확인하는 단계로 ②데이터 검증 단계를 거친다. 지금까지 데이터 검증은 Controller에서 직접 처리하는 방식을 사용했었다. 하지만 이것은 검증이라는 관심사를 분리하여 사용해 보겠다. 검증의 종류를 따지자면 많은 검증이 있겠지만 범위로 나눠보자 Controller 안에서 사용하는 검증(Valid) 또는 전 Controller에서사용하는 검증이 있다. 우선 Controller안에서 사용하는 검증에 대해서 알아보자 우선 검증(Valid) 관심사를 분리하기 위하여 검증을 위한 클래스를 생성해 준다. 검증을 위한 클래스는Validator inte.. 2022. 6. 18.
[Spring] 데이터 변환 데이터 변환 >> Web 상에서 GET/POST 방식으로 Server 쪽으로 값을 보내게 되면 ①데이터 변환 ②데이터 검증 단계를 거치게 된다. >> 아래의 요청이 들어가면 URL?year=2022&month=6&day=18 >> ParameterMap 에 의해서 값들이 String으로 변환되고 >> WebDataBinder에 의하여 ①데이터 변환 ②데이터 검증 단계를 거쳐서 >> 변환하고자 하는 데이터 타입으로 변환되게 된다. >> 타입변환에 대해서 알아보자 ParameterMap 에서 타입변환될때 보통 String 타입과, Integer 타입으로의 변환은 Spring에서 자동으로 변환해주지만 >> Date 타입의 변환이라던지, 내가 원하는 형식으로 변환할 경우는 직접 타입을 변환해주어야 한다. 그렇지.. 2022. 6. 18.
[Spring] Spring MVC vs RESTful 1. Spring MVC >> Client에게 요청이 들어오면 Dispatcher Servlet에 의해 해당 Controller에게 요청을 넘기고 Controller는 데이터를 가공하여 View를 Dispatcher Servlet에게 전달하면 이를 Client에게 전달하는 방식이다. 2. Restful >> Client 에게 요청이 들어오면 Dispatcher Servlet이 해당 컨트롤러 또는 RestController에게 전달하고 해당 컨트롤러에서 View를 리턴하는것이 아닌 데이터를 리턴한다. (JSON or XMl 형식) >> Controller를 사용할경우에는 해당 요청메서드에 @ResponseBody 어노테이션을 붙여야 한다. >> RestController는 Spring 4.x 버전부터 사용.. 2022. 6. 16.
[Spring] 예외처리2 >> @ControllerAdvice 모든 컨트롤러에서 발생하는 에러처리를 하며, 만약 컨트롤러내 에러 처리하는 @ExceptionHandler이 있다면 가까운 @ExceptionHandler에서 처리가 된다. @ControllerAdvice("패키지 지정/ Default 전체") @ExceptionHandler("처리할 예외클래스 지정") @ResponseStatus(HttpStatus.~) >> 예외처리 매서드 앞에붙인다. >> 예외처리 코드를 바꿀때 사용한다. 200번 --> 400번대 혹은 500번대로 변경해주는것 >> 사용자 정의 예외클래스 만들때 앞에 붙일수 있다. 디폴트인 500번대를 -> 원하는 에러코드로 변경가능 >> web.xml 을 통해서 error 페이지 추가해주는 방법으로 Tomc.. 2022. 6. 14.