개발노트/Spring
두 어노테이션 다 데이터를 전달하기 위하여 사용된다. http에서는 요청간의 데이터를 보장해주지 않기 때문에 이를 저장할 공간이 필요하다. @PathVariable : URL경로에 변수를 넣는것 입니다. ex)127.0.0.1:8080/abcd/abcd RESTful API에서 사용합니다. @PostMapping("delete/{idx}") @ResponseBody public JsonResultVo postDeleteFactory(@PathVariable("index") int indexNum) { return factoryService.deleteFacotryData(indexNum); } WAS같은 경우 URL에 특수문자나 구분기호 " , , ` , . " 등을 사용하면 인식을 못한다. 따라서 UR..
Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다. 전통적인 Spring MVC의 컨트롤러인 @Controller와 Restuful 웹서비스의 컨트롤러인 @RestController의 주요한 차이점은 HTTP Response Body가 생성되는 방식이다. @Controller(Spring MVC Controller) @Target(value=TYEP) @Retention(value=RUNTIME) @Documented @Component public @interface Controller [ Controller - View ] 전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용 아래와 같은 과..
SrpingBoot에서는 JSP를 권장하지 않는다. Thymeleaf와 달리 JSP는 스프링부트가 자동 설정을 지원하지 않으며 권장하지도 않는다. 우선 JSP를 사용하면 JAR 패키징을 할 수 없어 WAR 패키징을 해야한다. 물론, WAR패키징으로도 임베디드 톰캣으로 실행할 수 있고 배포도 가능하다. 하지만 Undertow라는 최근에 만들어진 서블릿 엔진이 JSP를 지원하지 않는 등 제약사항이 있다. 또한 JSP에 대한 의존성을 넣으면 의존성 문제가 생기는 경우도 있다. JAR vs WAR JAR와 WAR 모두 JAVA의 jar 툴을 이용해 생성된 파일이며 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일을 패키징해준다. JAR (Java Archive) .jar 자바 프로젝트를 압축한 파일 자..
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.repositories Spring Data JPA - Reference Documentation Example 109. Using @Transactional at query methods @Transactional(readOnly = true) interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") void del docs.spring.io..
Transaction 트랜잭션(Transaction, 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. 간단하게 말해서 아래의 질의어(SQL)를 이용하여 데이터베이스를 접근 하는 것을 의미한다. SELECT INSERT DELETE UPDATE 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다. 게시판 사용자는 게시글을 작성하고, 올리기 버튼을 누른다. 그 후에 다시 게시판에 돌아왔을때, 게시판은 자신의 글이 포함된 업데이트된 게시판을 보게 된다. 이러한 상황을 데이터베이스 작업으로 옮기면, 사용자가 올리기 버튼을 눌렀을 시, Insert 문을 사용하여 사용자가 입력한 게시글의 데이터를 옮긴다. 그 후에, 게시판을 구성할 데이터를 다시 ..
기존방식 => JDBCUtil 클래스와 데이터베이스에 실질적으로 접근하는 DAO클래스 생성하여 사용 스프링의 JdbcTemplate 클래스 사용 GoF디자인 패턴 중 템플릿 메서드 패턴이 적용된 클래스. GoF(Gang of Four)에서는 23가지 디자인 패턴을 3가지 유형으로 분류 1. Creational Pattern 객체를 생성하는데 관련된 패턴들객체가 생성되는 과정의 유연성을 높이고 코드의 유지를 쉽게 함 2. Structural Pattern 프로그램 구조에 관련된 패턴들프로그램 내의 자료구조나 인터페이스 구조 등 프로그램의 구조를 설계하는데 활용할 수 있는 패턴들 3. Behavioral Pattern 반복적으로 사용되는 객체들의 상호작용을 패턴화 해놓은 것들 스프링 JDBC를 사용하기 위한..
1. IoC(Inversion of Control)이란? IoC란 Inversion of Control의 약자로 해석하자면 제어의 역전이다. 제어권이 뒤 바뀌었다는 뜻이다. 즉, 기존의 제어방식을 뒤집었다는 말 자바가 등장하고 자바 기반의 어플리케이션이 개발되던 초기에는 자바 객체를 생성하고 객체간의 의존관계를 연결하는 등의 제어권을 개발자가 직접 가지고 있었다고 한다. 그러나 서블릿, EJB가 등장하면서 개발자가 독점적으로 가지고 있던 제어권이 서블릿과 EJB를 관리하는 외부의 컨테이너로 넘어갔고 객체의 생성부터 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀐 것을 IoC, 제어의 역전이라 하는것이다. 2. IoC Container 모든 작업을 사용하는 쪽에서 제어하게 되면서 IoC컨테이너에서 제어..
AOP => 관점 지향 프로그래밍 AOP의 핵심개념 : 관심분리(Separation of Concerns) : 어떤 로직을 기준으로 핵심적인 관점, 부과적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하겠다는 것. 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것 예로 핵심적인 관점은 우리가 적용하고자 하는 핵심 비즈니스 로직이 된다. 또한 부가적인 관점은 로직을 실행하기 위해서 행해지는 데이터베이스 연결 로깅, 파일 입출력등이 있다. => 횡단 관심(Cross Cutting Concerns) ** IoC가 결합도와 관련이 있다면, AOP는 응집도와 관련이 있다. AOP사용 1. xml파일을 사용 2. 어노테이션을 사용 1) XML문서 사용 먼저 pom.xml에서 해당 depend..