목록Web/Spring (12)
개발합니다
https://hyoj-j.tistory.com/36?category=1265604 [Spring] poi 라이브러리를 이용한 엑셀 일괄 등록 Spring MVC + Maven 구조로 poi 라이브러리를 통해 엑셀 데이터를 읽고 DB에 저장하는 코드를 작성해봄. 스프링 강의는 많이 들었지만 전부 따라 하기만 했지 직접 구현해보는 건 처음이다 ... 그래도 hyoj-j.tistory.com 해당 포스팅에서 이어지는 내용입니다. MultipartHttpServletRequest를 써서 파일 업로드를 사용하는데 클래스를 찾을 수 없다고 나왔다. ~ 에러 메세지 ~ java.lang.classcastexception: org.apache.catalina.connector.requestfacade cannot b..
https://hyoj-j.tistory.com/36?category=1265604 [Spring] poi 라이브러리를 이용한 엑셀 일괄 등록 Spring MVC + Maven 구조로 poi 라이브러리를 통해 엑셀 데이터를 읽고 DB에 저장하는 코드를 작성해봄. 스프링 강의는 많이 들었지만 전부 따라 하기만 했지 직접 구현해보는 건 처음이다 ... 그래도 hyoj-j.tistory.com 해당 포스팅에서 이어지는 내용입니다. ajax를 통해 /excel/upload로 보내면 컨트롤러가 받는 구조인데 암만 버튼 눌러서 submit 해봐도 아무 반응이 없는 거다... F12로 DevTools 꺼내서 콘솔창 확인해봤더니 해당 URI를 찾지 못해서 404 에러가 나는 것을 확인했다. 안 그래도 MVC구조 처음 ..
Spring MVC + Maven 구조로 poi 라이브러리를 통해 엑셀 데이터를 읽고 DB에 저장하는 코드를 작성해봄. 스프링 강의는 많이 들었지만 전부 따라 하기만 했지 직접 구현해보는 건 처음이다 ... 그래도 완강 몇 번 하니까 어노테이션에도 익숙해지고, 구조가 잡히는 느낌이라 한 번 시도해봄! poi 라이브러리로 엑셀 데이터 읽는 부분은 다른 사람의 코드를 참고했다. ~ 구성 ~ 1. jsp에서 ajax를 통해 /excel/upload 주소로 업로드한 엑셀 파일 정보를 보냄 2. 해당 주소로 매핑된 contoller에서 정보를 받고, 적절한 service를 호출해준다 .xls 형식일 경우 xlsExcelReader() 메서드 호출 .xlsx 형식일 경우 xlsxExcelReader() 메서드 호출..
스프링은 외부 설정 파일이나, VM 아규먼트와 같이 시스템 환경 변수와 같은 환경 정보를 읽을 수 있는 런타임 환경 서비스 추상화인 Environment 인터페이스를 제공하고 있다. 스프링 런타임 환경 추상화를 이용하면 다양한 소스로부터 일관된 방식으로 환경 정보를 읽을 수 있기 때문에 코드를 변경하지 않고도 얼마든지 설정 정보를 작성하는 방식을 변경할 수 있다. 환경 추상화(Environment Abstraction)란? 프로파일(profile)과 프로퍼티 소스(property-source)로 구성되며, 컨테이너와 통합 된 서비스 추상화이다. 이를 통해 실행 환경에 따라 빈을 구성할 수 있고, 일관된 방식으로 외부 설정 정보를 관리하고, 접근할 수 있다. 개발자는 environment 인터페이스나 애노..
JDBC (Java Database Connectivity) 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API. JdbcTemplate 매번 작업이 되는 드라이버 로딩, DB 연결, 자원해제 부분을 한 번에 처리해서 SQL 작성 및 전송 부분에만 집중할수 있게 해주는 템플릿. 커넥션풀 데이터베이스 커넥션을 미리 만들어놓고 사용하는 방법 c3p0 모듈의 ComboPooledDataSource를 이용해 만들 수 있다. 반드시 예외처리를 해주어야 한다. 스프링 설정 파일에 빈(Bean) 객체로 생성하는 방법과 config 파일로 작성해서 사용하는 방법이 있다. [DBConfig.java] @Configuration public class DBConfig { @Bean public ComboPooled..
1. @ModelAttribute @ModelAttribute를 이용하면 커멘드 객체의 이름을 변경할 수 있고, 이렇게 변경된 이름은 뷰에서 커멘드 객체를 참조할 때 사용된다. - 컨트롤러 public String memJoin(Member member) - 뷰 ID : ${member.memID} - 컨트롤러 public String memJoin(@ModelAttribute("mem") Member member) - 뷰 ID : ${mem.memId} 2. Model & ModelAndView 컨트롤러에서 뷰에 데이터를 전달하기 위해 사용되는 객체로 Model과 ModelAndView가 있다. Model은 뷰에 데이터만을 전달하기 위한 객체이고, ModelAndView는 데이터와 뷰의 이름을 함께 전..
1. @RequestMapping을 이용한 URL 맵핑 @RequestMapping(value="/memJoin", method=RequestMethod.GET) -> 메소드는 디폴트로 GET 방식을 따름. 생략 가능 메소드 부분을 생략해 속성이 value 하나일 때는 @RequestMapping("/memJoin") 이런식으로 간단하게 표현 가능 메소드 부분을 명시해두지 않아도 value 값에 맞는 함수를 호출해주긴 하지만, 코드 가독성을 위해 써두는 편이 좋다. 2. 요청 파라미터 2-1. HttpServletRequest 객체를 이용한 HTTP 전송 정보 얻기 @RequestMapping(value = "/memJoin", method = RequestMethod.POST) public String..
.xml 파일에 생성한 빈(Bean) 객체들을 @Configration 어노테이션을 사용해서 자바로 작성 가능하다. 1. 기본 @Configuration public class MemberConfig { // @Bean public StudentDao studentDao() { return new StudentDao(); } } 2. 태그 사용 /* * * * */ @Bean public StudentRegisterService registerService() { return new StudentRegisterService(studentDao()); } 3. setter를 이용한 의존 객체 주입 /* * * * * * */ @Bean public DataBaseConnectionInfo dataBaseC..
의존객체 자동 주입 : 또는 태그로 의존 대상 객체를 명시하지 않아도 스프링 컨테이너가 자동으로 필요한 의존 대상 객체를 찾아서 필요한 객체에 주입해주는 기능. @Autowired 와 @Resource 어노테이션을 이용해서 구현할 수 있다. 1. @Autowired 주입하려고 하는 객체의 타입이 일치하는 객체를 자동으로 주입한다. @Autowired는 생성자, 프로퍼티, 메소드에 전부 사용할 수 있다. 2. @Resource 주입하려고 하는 객체의 이름이 일치하는 객체를 자동으로 주입한다. @Resource는 생성자에는 사용 못하고, 프로퍼티 또는 메소드에 사용 가능 프로퍼티나 메소드에 사용하려면 디폴트 생성자를 꼭 명시 해줘야함. @Resource private WordDao wordDao; //디폴트..
DI(Dependency Injection) : 객체를 만들어 외부에서 주입하는 방식 1. 생성자를 이용한 의존 객체 주입 bean으로 생성한 DAO 객체를 Service 객체에 태그를 통해 주입 시켜줌. 2. setter를 이용한 의존 객체 주입 public void setJdbcUrl(String jdbcUrl) { this.jdbcUrl = jdbcUrl; } public void setUserId(String userId) { this.userId = userId; } public void setUserPw(String userPw) { this.userPw = userPw; } property 태그를 통해 값을 넣어줌. name 속성은 해당 setter 메소드 이름에서 set을 제거하고 앞글자를..