java

· Spring
ModelAndView를 통한 뷰 선택과 모델을 전달해 보는 것에 대해 알아보겠습니다. ModelAndView를 통한 뷰 선택과 모델 전달ModelAndView를 사용하면 이 두 가지를 한 번에 처리할 수 있습니다. 요청 매핑 애노테이션을 적용한 메서드는 String 타입 대신 ModelAndView를 리턴할 수 있습니다.  @Controller@RequestMapping("/survey")public class SUrveyController{ @GetMapping public ModelAndView form() { List questions = createQuestions(); ModelAndView mav = new ModelAndView(); mav.addObject("questions", q..
· Spring
처음 스프링 MVC를 이용해서 웹 개발을 하다 보면 사소한 설정 오류나 오타로 고생합니다. 이번 시간에는 입문 과정에서 겪게 되는 에러 사례를 정리해 보았습니다. 요청 매핑 애노테이션과 관련된 주요 익셉션 흔한 에러는 404 에러입니다. 요청 경로를 처리할 컨트롤러가 존재하지 않거나 WebMvcConfigurer를 이용한 설정이 없다면 404 에러가 발생합니다. 404 에러가 발생하면 - 요청 경로가 올바른지 - 컨트롤러에 설정한 경로가 올바른지 - 컨트롤러 클래스를 빈으로 등록했는지 - 컨트롤러 클래스에 @Controller 애노테이션을 적용했는지 뷰 이름에 해당하는 JSP파일이 존재하지 않아도 404에러가 발생합니다. 차이점으로 메시지에 해당 뷰가 없다고 표시됩니다. 위 그림과 같은 에러가 발생한다면..
· Study
Mac OS M1 Chip이 탑재된 환경에서 STS4를 설치 후 일정 기간이 지나면 STS4 응용프로그램을 열 수 없다는 경고창이 나옵니다. 해당 이슈는 맥 자체의 인증 문제이기 때문에 다음과 같이 명령어를 터미널에 입력해 줍니다. codesign --force --deep --sign - /Applications/SpringToolSuite4.app 참고 블로그 MAC 응용프로그램을 열 수 있는 권한이 없습니다 MAC에서 STS 사용중에 갑자기 아래와 같은 문제가 발생하여 STS를 실행할 수 없을 때 조치 먼저 pkgutil로 인증 상태 확인 pkgutil --check-signature /Applications/SpringToolSuite4.app 강제로 인증하는 거라고 하는 happy-jjang-a..
· Spring
이번 시간에는 @EnableTransactionManagement 애노테이션에이 제공하는 속성에 대해 알아봅시다. @EnableTransactionManagement 애노테이션의 속성 속성 설명 proxyTargetClass 클래스를 이용해서 프록시를 생성할지 여부를 지정한다. 기본값은 false로서 인터페이스를 이용해서 프록시를 생성한다. order AOP 적용 순서를 지정한다. 기본값은 가장 낮은 우선순위에 해당하는 int의 최댓값이다. 트랜잭션 전파 public class SomeService{ private AnyService anyService; @Transactional public void some(){ anyService.any(); } public void setAnyService(Any..
· Spring
@Transactional 애노테이션의 주요 속성을 알아봅시다. 속성 타입 설명 value String 트랜잭션을 관리할 때 사용할 PlatformTransactionManager 빈의 이름을 지정합니다. 기본값 : "" propagation Propagation 트랜잭션 전파 타입을 지정합니다. 기본값 : Propagation.REQUIRED isolation Isolation 트랜잭션 격리 레벨을 지정합니다. 기본값 : ISolation.DEFAULT timeout int 트랜잭션 제한 시간을 지정합니다. 기본값은 -1로 이 경우 데이터베이스의 타임아웃 시간을 사용합니다. 초 단위 지정 * Propagation과 Isolation 열거 타입은 org.springframework.transaction...
· Spring
[Spring] @Transacational과 프록시 스프링은 @Transactional 애노테이션을 이용해서 트랜잭션을 처리하기 위해 내부적으로 AOP를 사용합니다. 실제로 @Transactional 애노테이션을 적용하기 위해 @EnableTransaction Management 태그를 사용하면 스 muscleking3426.tistory.com 이전 포스팅에 이어 작성하겠습니다. @Transactional 적용 메서드의 롤백 처리 커밋을 수행하는 주체가 프록시 객체였던 것처럼 롤백을 처리하는 주체 또한 프록시 객체입니다. try { cps.changePassword("madvirus@madvirus.net", "3333", "1111"); System.out.println("암호 변경"); } cat..
· Spring
트랜잭션 트랜잭션은 두 개 이상의 쿼리를 한 작업으로 실행해야 할 때 사용하는 것이 트랜잭션(transaction)입니다. 트랜잭션은 여러 쿼리를 논리적으로 하나의 작업으로 묶어줍니다. 한 트랜잭션으로 묶인 쿼리 중 하나라도 실패한다면 전체 쿼리를 실패로 간주하고 실패 이전에 실행한 쿼리를 취소합니다. 롤백 (rollback) : 쿼리 실행 결과를 취소하고 DB를 기존 상태로 되돌리는 것 커밋 (commit) : 트랜잭션에 묶인 모든 쿼리가 성공해서 쿼리 결과를 DB에 실제로 반영하는 것 트랜잭션을 시작하면 트랜잭션을 커밋하거나 롤백할 때까지 실행한 쿼리들이 하나의 작업 단위가 됩니다. JDBC는 Connection의 setAutoCommit(false)를 이용해서 트랜잭션을 시작하고 commit()과 ..
· Spring
이번 시간에는 Spring의 익셉션 변환처리에 대해 알아보겠습니다. SQL 문법이 잘못됐을 때 발생한 메시지를 보면 익셉션 클래스가 org.springframework.jdbc 에 속한 BadSqlGrammarException 클래스임을 알 수 있습니다. 해당 익셉션이 발생한 이유는 MySQLSyntaxErrorException이 발생했기 때문입니다. org.springframework.jdbc.BadSqlGrammarException: ... Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ... 해당 익셉션이 발생한 코드를 살펴보면 jdbcTemplate.update((Connection conn) -> { PreparedS..
· Spring
이번 시간에는 Spring DB 연동 과정에서 발생할 수 있는 익셉션에 대해서 알아보겠습니다. SQLException DB 연결 정보가 올바르지 않으면 나타나는 익셉션입니다. DB 연결 정보는 DataSource에 있으므로 DataSource를 잘못 설정하면 연결을 구할 수 없다는 익셉션(CannotGetJdbcConnecdtionException)이 발생합니다. 예를 들어, 데이터베이스 암호를 잘못 설정하여 나타는 메시지는 다음과 같습니다. CannotGetJdbcConnection: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'spring5'@'localhost'(u..
· Spring
[Spring] Spring DB - 쿼리실행 Spring에서 제공하는 쿼리 실행 방법을 알아보겠습니다. JdbcTemplate을 이용한 변경 쿼리 실행 INSERT, UPDATE, DELETE 쿼리는 update() 메서드를 사용합니다. * int update(String sql) * int update(String sql, Object... args muscleking3426.tistory.com 이전 포스팅에서 작성했던 코드를 테스트해보는 시간을 가지겠습니다. 간단한 메인 클래스를 작성해서 테스트해봅시다. 설정 클래스 @Configuration public class AppCtx { @Bean(destroyMethod = "close") public DataSource dataSource() { D..
runnnerDevHong
'java' 태그의 글 목록