일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- tool
- ubuntu
- 맛집
- Design Patterns
- elasticsearch
- springboot
- Spring Boot
- jsp
- AWS
- ReactJS
- java
- jenkins
- IntelliJ
- redis
- devops
- Spring Batch
- laravel
- JVM
- db
- it
- Oracle
- Spring
- Web Server
- linux
- MySQL
- php
- javascript
- 요리
- Git
- Gradle
- Today
- Total
목록Java & Kotlin/Spring (76)
아무거나
[spring] 트랜잭션(Transaction) - 2 PlatformTransactionManager 인터페이스 보다 더욱 많이 사용되는 TransactionTemplate에 대해 알아보자. TransactionTemplate은 PlatformTransactionManager보다 더 간편하게 사용할 수 있다. 1. dao에 트랜잭션 관련 내용 추가 [testDao.java] .... //PlatformTransactionManager transactionManager; TransactionTemplate transactionTemplate; // 트랜잭션 매니저 setter 추가 // public void setTransactionManager( PlatformTransactionManager tran..
[spring] 트랜잭션(Transaction) - 1 트랙잭션이란 논리적 단위로 어떤 한 부분의 작업이 완료되었다 하더라도, 다른 부분의 작업이 실패할 경우 전체 취소되는 것이다. 이때, 작업이 완료되는것을 커밋(commit), 취소(이전으로 되돌리다)되는 것을 롤백(rollback)이라한다. -> 일상생활에서는 카드 결제나 마일리지 적립 ATM 등 사용된다. 1. dao에 트랜잭션 관련 내용 추가 [testDao.java] .... PlatformTransactionManager transactionManager; // 트랜잭션 매니저 선언 // 트랜잭션 매니저 setter 추가 public void setTransactionManager( PlatformTransactionManager transa..
[spring] jdbc 1. JDBC를 이용한 반복코드 줄이기 - DAO객체를 이용해서 DataBase의 데이터를 이용한다. 이때 매번 같은 동작을 반복하는 부분이 있다. (ex: 드라이버 로드, 커넥션 생성, DB연결, SQL실행, 자원해제) 이런 반복적인 작업들을 스프링에서는 간단하게 처리가 가능하다. * JDBC 드라이버 로드(DriverManager) -> 데이터베이스 연결(Connection) -> SQL문 실행(Statement) -> 데이터베이스 연결 해제(ResultSet) --> 이러한것들을 jdbcTemplate에서 한번에 해결할 수 있다. 2. Spring빈을 이용한 코드 간소화 - jdbcTemplate 빈 안에는 Datasource빈이 있다. 이것을 java 파일에서 갖다쓴다. ..
[spring] 폼 데이터 값 검증 1. Validator를 이용한 검증 - 폼에서 전달 되는 데이터를 커맨드 객체에 담아 컨트롤 객체에 전달 한다고 하였다. 이때 커맨드 객체의 유효성을 검사할 수 있다. ( 해당 검사방법은 Validator 인터페이스를 이용하여 서버에서 검사하는 방법이다. ) [ex] @RequestMapping("/bong/create") public String testCreate(@ModelAttribute("m") Member member, BindingResult result) { // 에러의 결과를 바인딩한 객체(BindingResult) .... BongValidator validator = new BongValidator(); validator.validate(membe..
[spring] @RequestMapping 파라미터 1. Get방식과 Post방식 - 기존에 알고 있는걸로 알고 생략 2. @ModelAttribute - 이전에 파라미터가 많을경우 데이터 모델 객체를 파라미터에 바로 받으면 코드양이 작아지는것을 알 수 있었다. 만약 커맨드 객체의 이름이 길거나 어려워서 바꾸고 싶을 경우에는 @ModelAttribute 어노테이션을 사용하자. Member member일 경우에는 뷰에서 ${member.name} 와 같은 형태로 표시를 해줬지만. 아래와 같이 @ModelAttribute을 사용하면 public String test(@ModelAttribute("m") Member member) { .... } --> ${m.name} 으로 출력이 가능하다. 3. 리다이렉..
[spring] Form 데이터 1. HttpServletRequest 클래스 * HttpServletRequest란 사용자가 어떤 요청을할때 그럼 dispatcher가 controller로 보내주는데 그 때 사용자가 요청한 데이터를 받는 객체이다. [ex] public String test(HttpServletRequest httpServletRequest) { .... } 만약 http://localhost:8080/test?id=bong&pw=1234 로 요청하게 되면 id랑 pw값이 httpServletRequest에 담아진다. 2. @RequestParam 어노테이션 * 위의 1번 방법과 동일하며 해당 방법은 어노테이션을 사용한 방법이다. [ex] public String test(@Reques..
[spring] 컨트롤러 뷰에 데이터 전달 ## 뷰에 데이터 전달 컨트롤러에서 로직 수행 후 뷰페이지를 반환 한다. 이때 뷰에서 사용하게 될 데이터를 객체로 전달 할 수 있다. 1. Model 클래스를 이용한 데이터 전달 [ex] @RequestMapping("/board/content") public String content(Model model) { // Model 객체를 파라미터로 받음 model.addAttribute("id", 30); // Model 객체에 데이터를 담음 return "board/content"; // 컨트롤러에서 전달 받은 Model객체를 view로 리턴 그러면 스프링컨테이너에서 알아서 데이터로 변환해준다. } 2. ModelAndView 클래스를 이용하여 데이터 전달 * ..
[spring] 스프링 MVC 기초 * 스프링 MVC 전체적인동작 - client에서 요청이 들어오면 무조건 먼저 받는곳은 DispatcherServlet이다. DispatcherServlet에서 ( HandlerMapping, View(JSP), ViewResolver, HandlerAdapter, Controller 로 작업을 보낸다 ) 실제로 공수가 많이 들어가는 부분은 controller, view쯤이 될 것이다. ex) [client] -> [DispatcherServlet(HandlerMapping, View(JSP), ViewResolver, HandlerAdapter)] [Controller] 1. 프로젝트 생성 New -> Spring Legacy Project -> spring MVC ..
[spring] AOP(Aspect Oriented Programming) - 2 1. @Aspect 어노테이션기반의 AOP구현 작업순서 (1) 의존 설정(pom.xml) [pom.xml] ......... org.aspectj aspectjweaver 1.7.4 (2) @Aspect 어노테이션을 이용한 Aspect클래스 제작 [LogAop.java] import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.an..
[spring] AOP(Aspect Oriented Programming) - 1 개발시에 공통적인 기능이 많이 발생한단. 이러한 것들을 모든 모듈에 적용하기 위한 방법으로 상속을 통한 방법이 있다. 하지만 상속에는 몇가지 문제가 있다. JAVA에는 다중 상속이 불가하며 다양한 모듈에 상속기법을 통한 공통 기능 부여는 한계가 있다. 그리고, 기능 구현부분에 핵심 기능 코드와 공통 기능 코드가 섞여 있어 효율성이 떨어진다. ( 즉, 코드가 core기능이나 필요기능등. 다 짬뽕되어서 코드의 양이 많아지고 유지보수가 어려워진다. ) 그래서 AOP가 등장했다. AOP는 핵심 기능과 공통 기능을 분리 시켜놓고, 공통 기능을 필요로 하는 핵심 기능들에서 사용하는 방식이다. [ex - 밥만들기] 물을 받고 -> 쌀을..