application.properties는 스프링 부트에서 지원하는 Map컬렉션과 비슷한 역할을 합니다.
기본 설정 파일이므로 Key.Value값으로 설정해주면 알아서 적용됩니다.
만약 기본 설정파일을 설정하지 않을 경우에는 controller의 return값으로 경로를 포함한 view페이지를 적어주어야 합니다.
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp
return "/WEB-INF/view/index.jsp";
JSP, 서블릿을 통해서 자바 코드, JSP파일을 수정한 경우 우리는 서버를 재시작하는 일이 많았습니다.
그러한 불편한 점은 Spring boot에서는 라이브러리를 의존함으로써 자동 재시작하도록 해줍니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
view가 존재하지 않은 경우 @RestController를 사용했다.
view가 존재할 경우 @Controller를 사용합니다.
@Controller //뷰가 따로존재하면
public class HomeController {
@GetMapping("/index")
public String index() {
return "index";
}
}
하나의 컨트롤러에서 여러 개의 view를 책임질 수 있는데 맵핑하는 과정에서 중첩되는 것들이 존재한다.
@Controller
public class NoticeController {
@GetMapping("/notice/list")
public String list() {
return "notice/list";
}
@GetMapping("/notice/detail")
public String detail() {
return "notice/detail";
}
@GetMapping("/notice/reg")
public String rest() {
return "notice/reg";
}
}
공통적인 /notice/부분을 컨트롤러에 애노테이션 합니다.
@Controller
@RequestMapping("/notice/")
public class NoticeController {
@GetMapping("list")
public String list() {
return "notice/list";
}
@GetMapping("detail")
public String detail() {
return "notice/detail";
}
}
배우는 과정에서 Dao를 사용하지 않았던 이유 우리가 만드는 웹 프로젝트에서는 트랜잭션을 처리할 일이 거의 없으므로 Dao를 만들게 되면 Dao가 sevice가 하는 일을 전부 다하기 때문에 불필요했습니다.
또한 트랜잭션을 service에서 처리하기 위해 커넥션을 연결해주어야 했는데 연결해주는 것이 어려웠습니다.
그러한 것을 쉽게 해결해주는 것이 spring입니다.
스프링에서는 dao를 repository라고 명명합니다.
또한 클래스 이름을 지을 때 실행환경, 특정적인 부분의 이름은 앞쪽에 작성합니다.
ex) MybatisNoticeController
다오가 하는 일을 거의 비슷합니다. sql문을 실행해 데이터베이스에서 데이터를 삭제 , 수정, 추가 , 검색하는 일입니다.
public interface NoticeDao {
List<Notice> getList();
Notice get(int id);
int insert(Notice notice);
int update(Notice notice);
int delete(int id);
}
'웹 프로그래밍 기초 > 자바기반의 웹&앱 응용SW 개발자' 카테고리의 다른 글
자바기반의 웹&앱 응용 SW개발자 양성과정 68일차 -102 (0) | 2020.06.18 |
---|---|
자바기반의 웹&앱 응용 SW개발자 양성과정 67일차 -101 (0) | 2020.06.17 |
자바기반의 웹&앱 응용 SW개발자 양성과정 67일차 -99 (0) | 2020.06.17 |
자바기반의 웹&앱 응용 SW개발자 양성과정 66일차 -98 (0) | 2020.06.16 |
자바기반의 웹&앱 응용 SW개발자 양성과정 65일차 -97 (0) | 2020.06.14 |
댓글