Spring Framework/Spring 개념: 20개의 글
@ModelAttribute는 어떻게 Formatter 없이 작동할까? @RequestParam 이나 @PathVariable로 들어온 문자열 값을 객체로 받기 위해서는 Formatter 가 필요하다. 아래 예제로 살펴보자. title이라는 String형 변수와 length라는 int형 변수를 가진 DTO이다. @Getter @Setter public class Music { String title; int length; } 만약 @RequestParam이나 @PathVariable로 넘어온 문자열 값을 Music객체로 받고 싶다면 아래와 같이 코드를 작성하면 된다. @ResponseBody @GetMapping("/hello/{title}"){ public String hello(@Pathvariabl..
자동 의존성 주입 어노테이션 정리 @Autowired 검색 순서 : 타입 -> 이름 -> @Qualifier -> 검색 실패시 예외 처리 또는 null 처리 @Autowired는 주입하려고 하는 객체와 타입이 일치하는 객체를 자동으로 주입한다. 최근에는 대부분 빈 주입시 생성자 주입을 선택하고 있기 때문에 생성자 주입을 기준으로 설명하겠다. public class AutowirdService { private final AutowiredRepsository autowiredRepository; @Autowired public AutowiredService(AutowiredRepository autowiredRepository) { this.autowiredRepsository = autowiredRepo..
스프링을 처음 사용하면 @Autowired, @Component, @Controller 등 다양한 어노테이션을 사용해야한다. 그런데 이 어노테이션들이 정확히 어떤 역할을 하는지 모르고 일단 사용하는 경우가 많이 있다. 오늘은 스프링 빈을 등록하는 2가지 방법을 알아보도록 하자. 1. 컴포넌트 스캔과 자동 의존관계 설정 -> 컴포넌트 스캔의 원리는 기본적으로 @Component 어노테이션이 있으면 자동으로 스프링 빈으로 등록된다. 참고로, @Component 어노테이션은 @Controller , @Service, @Repository를 포함한다. -Controller @Controller public class MemberController { private final MemberService member..
REST API -웹브라우저에서 실행되는 javascript로 개발한 앱을 위한 서버를 개발할 때, REST API 서비스를 제공하는 서버를 구현한다. REST API 서비스라는 것은 클라이언트의 URL요청에 대해서 JSON형태의 데이터를 출력하는 서버의 메소드를 말한다. Single-Valued Association - 두 개의 테이블 ex) employee와 department에서 외래키(employee 테이블의 departmentId)가 포함된 employee 객체에 department 멤버 변수를 구하는 것이 기본이다.(필수) @Entity public class Employees { .... 생략 ... @ManyToOne @JoinColumn(name ="departmentId") Depart..
1. AOP란? Aspect Oriented Programming 의 약자로 관점지향 프로그래밍이라고 부른다. IoC가 낮은 결합도와 관련된 것이라면 AOP 는 높은 응집도와 관련되어 있다. 서비스들의 비즈니스 메소드들은 복잡한 코드로 구성되어있는데, 그 중 핵심 로직은 얼마안되고 대부분은 트랜잭션, 로깅 처리, 인증과 관련된 코드들이 있을 수 있다. 이럴 때 비핵심이지만 꼭 필요하고, 공통화할 수 있는 부분을 따로 빼서(횡단 분리) 관리하는 것이다. 2. AOP 용어 조인포인트(Joinpoint) : 클라이언트가 호출하는 모든 비즈니스 메소드, 조인포인트 중에서 포인트컷되기 때문에 포인트컷의 후보로 생각할 수 있다. 포인트컷(Pointcut) : 특정 조건에 의해 필터링된 조인포인트, 수많은 조인포인트..
aop:aspectj-autoproxy란 @Aspect가 적용된 빈을 Aspect로 사용할 수 있게한다.
프로젝트의 한글 인코딩은 다음과 같이 필터로 편하게 작업할 수 있다. 각 컨트롤러에 한글 인코딩 작업을 할 필요없이 web.xml에 다음과 같이 필터 작업을 하면 한글의 경우 필터되어 처리된다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter /* encodingFilter / 필터 처리를 안했을 경우 다음과 같이 한글 이름이 들어간 것을 글쓰기 진행해보도록하자. 다음과 같이 insert시 한글이 깨져서 insert된다. 그럼 상기 코드를 web.xml에 작성해보도록하자. web.xml에서 추가된 부분은 /* url 패턴이 추가되었다. 기존 url패턴은 /패턴만 한글 인코딩 ..
ojdbc 추가 순서대로 진행해보자 1. 우선 메이븐 다운로드 페이지로 이동한다. 메이븐 다운로드 페이지 이동하기 maven을 다운받는다. 다운받은 파일을 압추을 풀어준 후 편하게 환경변수 등록을 하기 위해 C:\로 이동시킨다. 다음과 같이 Path를 편집한다. 변수값 제일 뒤에 아래의 변수 값을 추가한다. C:\apache-maven-3.6.3\bin cmd로 접속 후 다음과 같이 mvn -v 실행시 아래와 같이 버전이 정상적으로 나온다면 정상적으로 변수값 적용이 된 것이다. 확인 후 아래의 jar 파일을 로컬에 설치해줘야한다. 코드는 다음과 같다. 아래 오라클 jar 파일이 있는 경로를 확인한 후 아래 양식에 맞게 입력해준다.(PC마다 다를 수 있음) mvn install:install-file -D..
오라클 라이센스의 경우 그냥 얻어올 수 없다. pom.xml에 다음과 같이 repository 구문이 추가되어야 라이센스를 얻어올 수 있다. oracle.jdbc OracleDriver 12.1.0.2.0 system ${basedir}/src/main/webapp/WEB-INF/lib/ojdbc7.jar mesir-repo http://mesir.googlecode.com/svn/trunk/mavenrepo 출처 : namubada.net/267?category=777086
다음과 같이 두개의 test.jsp 파일이 있다. 하나는 web폴더(webContent)에 있고 하나는 web폴더의 하위 폴더인 WEB-INF 폴더에 있다. 그럼 우선 web 폴더에 있는 test.jsp 파일에 접속해보겠다. 다음과 같이 web의 test.jsp 파일에 정상 접속되는 것을 확인할 수 있다. 그럼 이번엔 WEB-INF의 test.jsp 파일에 접근해보도록하자 다음과 같이 404 오류가 발생한다. 이유는 무엇일까? web폴더(WebContetn폴더 앞으로 web 폴더라고 지칭함)에 파일이 있을 경우 비즈니스 로직없이도 가상의 결과물을 만들어 직접적으로 뷰를 살펴 볼 수 있다. 그렇기 때문에 우리가 localhost:8090/test.jsp로 접속시 해당 페이지를 볼 수 있었던 것이다. 그렇다..