본문 바로가기

slf4j 로그 남기기 package com.spring.start; import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping; @Controllerpublic class LoggerDemo {private static final Logger logger = LoggerFactory.getLogger(LoggerDemo.class);@RequestMapping("action1")public void action1(){logger.info("action1 호출... ");} } 간단하게 로그를.. 더보기
Oracle Connection 테스트 package com.spring.start; import java.sql.Connection;import java.sql.DriverManager; import org.junit.Test; public class OracleConnection {private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";private static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";private static final String USER = "scott";private static final String PWD = "1234";@Testpublic void testConn() throw.. 더보기
테스트를 위한 환경설정(1.8버전 설치와 스프링 4.3.10.RELEASE 버전 업 등 pom.xml 4.0.0com.springstartstartPrjwar1.0.0-BUILD-SNAPSHOT1.84.3.10.RELEASE1.6.101.6.6org.springframeworkspring-context${org.springframework-version}commons-loggingcommons-logging org.springframeworkspring-webmvc${org.springframework-version}org.aspectjaspectjrt${org.aspectj-version}org.slf4jslf4j-api${org.slf4j-version}org.slf4jjcl-over-slf4j${org.slf4j-version}runtimeorg.slf4jslf4j-log4j12${o.. 더보기
JUnit 개념정리 및 실습1 [ 단위테스트 JUnit ] * JUnit은 자바용 단위 테스트 작성을 위한 산업 표준 프레임워크다. 1. 단위테스트란 무엇인가? 테스트의 대상이 되는 코드 중에서 아주 작은 특정 영역을 실행해 보는 개발자가 작성한 코드 조각이다. 2 .어떤 것을 테스트 해야 하는 가? - 자신이 생각한 대로 코드가 동작하는지 검증하고자 할때 - 디스크가 꽉차있고, 네트워크가 단절되어있고, 버퍼 오버플로우가 되는 예외 상황에서도 코드가 동작되는지 알아보고자 할때 - 실제 DB 접속이 되지 않은 상태에서 설정이 제대로 되어 있는지 확인하고자 할때... [JUnit(단위테스트)] - 단위코드에서 문제 발생 소지가 있는 모든 부분을 테스트 하는 작업 - 보통 클래스의 public method를 테스트한다. - 좋은 단위 테스.. 더보기
servletSession과 springSession servletSession과 springSession send.jsp세션테스트1세션테스트2 sessionView.jsp아이디: ${id} 이름: ${name} className: ${ClassName} 유저아이디: ${userId} 유저이름: ${userName} 클래스명: ${SpringCalssName} 이동1: 이동1 a1.jsp아이디: ${id} 이름: ${name} className: ${ClassName} 유저아이디: ${userId} 유저이름: ${userName} 클래스명: ${SpringCalssName} 이동2: 이동2 servletSession package com.spring.sessionTest; import javax.servlet.http.HttpSession; import o.. 더보기
@RequestMapping void, String, ModelAndView 차이 @RequestMapping("insertForm")public void insertForm(){ } void 일 경우 return 값이 없다. 즉 return 을 적을 필요가 없다.경로를 찾는건 @RequestMapping("insertForm")에서 insertForm 가 페이지뷰가 된다.따라서 insertForm 뷰페이지가 존재해야 한다. String 일 경우는 return "insertForm"; 이런 식으로 뷰페이지 이름을 기술한다. ModelAndView 는 setViewName("insertForm") 이다. 더보기
pom.xml 설정시 참고 사이트 MVNRepository.com pom.xml 메이븐 빌더 시 필요한 값 받기https://mvnrepository.com/ 더보기
ResultMap 을 이용한 mybatis ResultMap은 DB 필드값과 DTO객체의 프라퍼티(변수)명이 다를 때 사용한다.ResultMap id에 사용할 임의의 이름을 기술하고 type(type="Department")에는 DTO명을 적어준다.column 에는 DB의 필드명을 적고 property에는 DTO 프라퍼티명을 적어준다. department_config.xml select * from departments order by department_id package com.spring.hr.model; public class Department {private int deptId;private String deptName;private String deptMgr;private String locaionId;public int getDep.. 더보기
기본 XML 설정과 사용예 mybatis.org 사이트에서 유용한 예제들을 잘 보고 복사, 붙여넣기해서 사용한다. XML 설정 시 DTD 파일 잘보고 설정해야 함. BDAO.xml (예: 임의의 파일명) // namespace 는 BDAO파일이 있는 팩키지+파일명 // select의 id 값은 메서드가 된다. 아래 BDAO를 보면 list() 라는 메서드가 된다.// resultType는 메서드의 반환타입을 적어주면 된다. select * from mybatis_bbs where bId between 10 and 15 order by bId DESC insert into mybatis_bbs(bId, bName, bContent) values(seq_mybatis_bbs.nextval,#{param1},#{param2}) dele.. 더보기
CGLIB 라이브러리 설치 자바 설정 파일:자바설정 파일 테스트를 위해 pom.xml 파일에 cglib를 추가해야한다.pom.xml 파일에 추가해서 메이븐으로 자동 다운로드 받으면 된다. cglib cglib 3.2.3 더보기
스프링 DI - 자바코드 설정 package com.spring4.practice01; public interface Car {public String brand(); } package com.spring4.practice01; public class CarImpl implements Car { @Overridepublic String brand() {return "자동차는 삼성 SM5입니다";} } package com.spring4.practice01; public interface Tire {public String mount();} package com.spring4.practice01; public class TireImpl implements Tire {public String mount(){return "타이어는 한국타이.. 더보기
스프링 DI(Dependency Injection) 2 Setter로 DI 주입 package com.spring4.practice01; public interface Car {public String brand(); } package com.spring4.practice01; public class CarHDImpl implements Car {public String brand(){return "자동차는 현대자동차 소나타입니다.";} } package com.spring4.practice01; import org.springframework.beans.factory.annotation.Autowired; public class Service { private Car car;public Service(){}public void setCar(Car car){.. 더보기
스프링 DI(Dependency Injection) 1 생성자를 이용한 DI 설정 package com.spring4.practice01; public interface Car {public String brand();} package com.spring4.practice01; public class CarHDImpl implements Car {public String brand(){return "자동차는 현대자동차 소나타입니다.";}} Car 인터페이스를 구현한 CarHDImpl을 만든다. package com.spring4.practice01; import org.springframework.beans.factory.annotation.Autowired; public class Service { private Car car;public Service().. 더보기
IoC(Inversion of Control- 제어의 역전) [IoC(Inversion of Control- 제어의 역전)란?] : IoC란 프로그램의 제어 흐름 구조가 바뀌는 것 ** 일반적인 프로그램의 흐름 구조는 main()과 같은 프로그램이 시작되는 지점에서 사용할 오브젝트를 결정, 생성하고, 생성된 오브젝트 내의 메소드를 호출하는 작업을 반복하는 구조이다. 즉, 모든 종류의 작업을 사용하는 쪽에서 제어하는 구조 ** IoC는 제어 흐름의 개념을 거꾸로 뒤집는 개념이다. 오브젝트는 자신이 사용할 오브젝트를 스스로 생성하거나 선택하지 않는다. 모든 제어 권한을 자신이 아닌 다른 대상에게 위임하는 것 프로그램의 시작을 담당하는 main()같은 엔트리 포인트를 제외하면 모든 오브젝트는 제어 권한을 위임받은 특별한 오브젝트에 의해 결정되고 만들어지는 것 - 작업을.. 더보기
Spring 파라미터 값 전달 예제 2 package com.homesi.controller; import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView; import com.homesi.vo.MemberVo2; @Controllerpublic class DemoController01 {@RequestMapping("/inputForm")publ.. 더보기
Mybatis 설정( pom.xml, root-context.xml) pom.xml org.mybatismybatis3.2.8org.mybatismybatis-spring1.2.2 org.springframeworkspring-jdbc${org.springframework-version} org.springframeworkspring-test${org.springframework-version} 1) servlet-context.xml에 dataSource 를 추가함.보통은 root-context.xml에 작성함. 2) root-context.xml 에 작성할 시 아래는 SimpleDriverDataSource 소스로 바꾸어서 작성했다. 더보기
파라미터 값 받기와 전달(Command 객체와 VO, http://localhost:8081/hoho/userInfo?id=this&name=aaaa&tel=010&email=this@daum.net @Controllerpublic class HomeController {//@Autowired//Command command;@RequestMapping("userInfo")public String userInfo(User user){Command command = new Command();command.getInfo(user);return "userInfo";}} package com.spring.hoho; public class User {private String id;private String name;private String tel;private S.. 더보기
스프링을 이용한 파일업로드 pom.xml 4.0.0com.springfileupfileUploadwar1.0.0-BUILD-SNAPSHOT1.63.1.1.RELEASE1.6.101.6.6org.springframeworkspring-context${org.springframework-version}commons-loggingcommons-logging org.springframeworkspring-webmvc${org.springframework-version}org.aspectjaspectjrt${org.aspectj-version}org.slf4jslf4j-api${org.slf4j-version}org.slf4jjcl-over-slf4j${org.slf4j-version}runtimeorg.slf4jslf4j-log4j12$.. 더보기
Spring에서 한글깨짐 방지를 위해 web.xml에서 한글 설정 한글 깨짐현상을 막기 위해 web.xml에 filter를 설정한다. contextConfigLocation/WEB-INF/spring/root-context.xmlorg.springframework.web.context.ContextLoaderListener appServletorg.springframework.web.servlet.DispatcherServletcontextConfigLocation/WEB-INF/spring/appServlet/servlet-context.xml1appServlet/encodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8forceEncodingtrueencodingFilter/* 더보기
스프링 TransactionTemplate을 사용한 트랜젝션 - 실전용 package com.test.transactionEx; import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.PreparedStatementCreator;import org.springframework.jdbc.core.PreparedStatementSetter;import org.springframework.stereotype.Se.. 더보기