spring boot: 104개의 글
@ModelAttribute의 값이 list로 넘어가지않는 문제가 발생하였다. 아래 list.jsp에서 표시한 부분에 값이 전달되어야 하는데 전달되지않아서 발생하는 문제였다. 아래 사진과 같이 값이 넘어가질 않는 것을 확인할 수있다. 해당 문제는 처음 사진에서 @ModelAttribute에서 name을 전달하지 않아서 발생한 문제였다. @ModelAttribute("conditionMap")을 입력 후 정상적으로 값 전달을 할 수 있었다. 출처 : namubada.net/103?category=777086
jdbc.driver=oracle.jdbc.OracleDriver jdbc.url=jdbc:oracle:thin:@//localhost:1521/xe jdbc.username=system jdbc.password=1234 Oracle Driver는 위와 같이 추가할 수 있다. 출처 : namubada.net/100?category=777086
@Autowired는 메소드 안에 사용할 수 없다. 클래스안에 객체로 사용해야 하며, 메소드 안에 사용시 아래와 같은 문제가 발생한다. 그럼 메소드 안이 Class 안에 객체 선언을 해보도록하자 진행시 아래와 같이 정상 실행되는 것을 확인할 수 있다. 출처 : namubada.net/90?category=777086
데이터베이스 연결시 DB Driver가 추가되어 있지 않으면 데이터를 DB에서 불러올 수 없다. 위와 같이 데이터 실행시 DB 연결이 안되어 있어 NullPointer 오류가 발생하게 된다. 문제의 해결은 pom.xml에서 database 추가 후 아래와 같이 문제를 해결할 수 있다. 출처 : namubada.net/80?category=777086
@Autowired 어노테이션의 경우 주로 변수 위에 설정하여 해당 타입의 객체를 찾아서 자동으로 할당한다. 그러므로 위의 private UserDAO userDAO의 경우 변수 선언만 했지 객체 할당을 하지않았다. 그러므로 위 상태에서 실행을 해버리면 userDAO의 메소드는 실행이 되어지지 않는다. 그러나 우리는 @Autowired 어노테이션으로 해당 변수위의 입력했기 때문에 해당 어노테이션이 해당 변수의 타입을 체크하고 그 타입의 객체가 메모리에 존재하는지 확인 후에 그 객체를 변수에 주입한다. 출처 : namubada.net/76?category=777086
위의 사진을 보면 BoardServiceClient의 BoardService boardService = (BoardService) container.getBean("boardService");에서 boardService를 호출하고있다. boardService는 applicationContext.xml에 있으며, 아래 사진에서 해당 코드의 내용을 확인할 수 있다. 그런데 특이한 점은 사진 어디에서도 boardService를 찾을 수 없다는 것이다. 그렇다면 어떻게 실행이 되는 것일까? 해당 부분의 해답은 아래 두 사진에서 확인할 수 있다. 실행되는 순서는 아래와 같다. 1. BoardServiceClient를 실행하면 2. applicationContext.xml에서 3. context:component-..
JPA(Java Persistent API) JPA(Java Persistent API)는 자바의 영속성 관리와 ORM을 위한 표준 기술입니다. 기존 EJB ORM이던 Entity Bean을 JPA라 바꿔 체계화한 기술이죠. ORM(Object Relational Mapping)이란 RDB 테이블을 객체지향적으로 사용하기 위한 기술입니다. 객체와 RDB의 테이블을 매핑하여 자바 프로그램 코드상에서 RDB를 객체지향적으로 쓸 수 있게 고려한 기술이라고 생각하면 될 것입니다. 이 JPA를 Spring에서 쉽게 쓸 수 있도록 한 것이 Spring Data JPA입니다. 장점 객체 지향적으로 데이터를 관리하기 때문에 비즈니스 로직에 집중할 수 있으며, 객체지향 개발이 가능 여러 RDBMS 벤더마다 다른 쿼리문을..
| 스프링 게시판 만들기 - 부트로 쉽게 구현한 Spring 게시판 예제 git repository는 여기를 클릭하시면 됩니다. 스프링 게시판은 스프링 MVC로 스프링 부트에서 밀고있는 툴인 Thymeleaf를 사용하여 쉽게 만들 수 있습니다. REST API + SPA( React, Vue 등 )으로 만들 수 있지만 간단한 커뮤니티 사이트 구현을 위해서는 조금 과한 기술스택을 사용하는 것이 아닌 지 생각해 봐야 합니다. 스프링 MVC를 사용했을 때의 데이터 흐름은 아래의 링크를 참고하여 보시면 될 것 같습니다. [Spring Framework/Spring 입문 - 개념 및 핵심] - [Spring] 스프링(Spring) MVC 아키텍처/설계 구조 위에서 JSP를 Thymeleaf라고 생각하고 읽으시면 ..
| 스프링 부트 Actuator 스프링 부트 어플리케이션은 actuator라는 모듈을 통해 어플리케이션 상태를 종합적으로 정리해서 제공해줍니다. 이를 통해 스프링 부트 어플리케이션 운영을 손쉽게 할 수 있죠. actuator는 다양한 Endpoints(사용자나 디바이스같은 IT 서비스의 최종 목적지)를 제공하여 이 다양한 Endpoints를 통해 어플리케이션의 운영 정보를 알 수 있습니다. | Actuator 접근하기 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---actuator | | | ActuatorApplication.java | | | | | \---resources | | | applicati..
| RestTemplate, WebClient Spring 기반 프로젝트를 진행하면 컴포넌트 내부에서 URL을 요청해야하는 경우가 생깁니다. Spring에서는 Http 요청을 간단하게 이용할 수 있도록 Blocking I/O 기반의 RestTemplate, Non-Blocking I/O 기반의 WebClient 모듈을 제공하고 있습니다. | RestTemplate 예제 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---webclient | | | HelloController.java | | | RestRunner.java | | | WebclientApplication.java | | | | | \---re..