Spring Framework/Spring 개념: 20개의 글
일반적으로 JSP는 모든 화면 기능을 일일이 구현하는 것이다. 필자의 홈페이지와 같이 좌측의 사이드는 어떤 페이지를 가도 그대로 유지된다. 필자의 경우 웹 폴더에 각 폴더를 생성해서 동일한 화면 구현 jsp를 넣었었다. 이는 코드의 증가와 비효율을 초래한다. 이로인해 tilles 기능을 적용하려고한다. tiles 적용전 tiles가 무엇인지 공부하고 추후 실제 페이지에 적용해보도록하자. tiles 기능은 화면 레이아웃 기능을 제공한다. 아래 구조도를 참조하도록하자. 우선 하단과 같이 pom.xml에 tiles dependency를 추가한다. org.apache.tiles tiles-core 3.0.8 org.apache.tiles tiles-jsp 3.0.8 org.apache.tiles tiles-se..
마이바티스에서 SQL 동적 처리시 주의해야 할 사항이 몇가지 있다. 1. wehre문 진행시 로 감싸줘야 한다. 2. if문 진행시 아래와 같이
아래와 같이 회원 정보와 매출을 jdbctemplate로 return하려고한다. 여기서 코드는 아래와 같다. 다만 우리는 기존 select에서 별칭으로 count(custno)인 count를 같이 return을 해야 한다. return시 사용할 RowMapper를 기존과 동일하게 사용할 수 없다. 그러므로 우리가 해야할 것은 다음과 같다. 1. count 별칭을 받을 변수를 VO에 추가 2. custno, custname, grade, count(별칭)을 반환할 RowMapper 클래스를 생성 그럼 우선 VO와 getter and setter를 진행하자 그다음 두번째 DAO에 custno, custname, grade, count(별칭)을 반환할 RowMapper 클래스를 생성한다. 그런데 여기서 의문?..
스프링 프로젝트의 Export는 기존과 동일하게 Export하면된다. 아래와 같이 WAR file로 Export 진행한다. 그 다음 스프링 이클립스에서 Import를 하면 아래와 같이 Spring 프로젝트가 아닌 Java 프로젝트로 생성이 된다. 생성된 자바 Project는 Configure > Convert to Maven Project로 Convert한다. Convert하면 아래와 같이 pom.xml이 생성된 것을 확인할 수 있다. 그러나 아래와 같이 jsp 파일에 에러가 있는 것으로 확인된다. 해당 문제는 프로젝트에 서버 추가가 안된 문제로 아래와 같이 진행하면 해결도니다. ApacheTomcat으로 체크를 해준다 다만 처음 Spring 프로그램을 실행하면 Tomcat 서버가 추가가 안되어 있다. ..
@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-..