@ModelAttribute Controller에서 커맨드객체를 활용했을 때 view에서 객체명.변수명 형식을 이용해 값을 가져올 수 있다. 이 때 @ModelAttribute 어노테이션을 활용해 view에서 활용할 객체명을 변경할 수 있다. Controller // 변경 전 public String memJoin(Member member) // 변경 후 public String memJoin(@ModelAttribute("mem") Member member) memJoinOk.jsp memJoinOk ID : ${mem.memId} PW : ${mem.memPw} Mail : ${mem.memMail} Phone : ${mem.memPhone1} ${mem.memPhone2} ${mem.memPhone..
화면으로 부터 사용자가 입력한 정보를 Controller가 넘겨받을 때 보통 HttpServletRequest 객체를 이용하거나 @RequestParam어노테이션을 이용한다. 이후 model 객체를 활용해 view단으로 데이터를 전송해 사용자에게 보여진다. model 객체와 HttpServletRequest 객체를 활용해 입력한 정보를 받고 해당 정보를 view로 보내는 과정을 진행해보고, 그로인해 발생할 수 있는 단점(단순반복코드)을 스프링에서 제공하는 커맨드 객체를 이용해 보완해보겠다. 커맨드 객체 HttpServletRequest를 통해 들어온 RequestParameter들을 setter를 이용해 객체에 정의되어있는 변수에 값이 바인딩 되는 객체를 의미한다. 커맨드 객체를 활용하기 위해선 Http..
모델1 웹 프로그래밍 구축 방법 중 Model 1 방식을 이용하게 되면 브라우저(사용자)로 부터 받은 요청을 하나의 파일에서 모두 처리하게 되는데, JSP, service, dao 등 여러 기능이 하나의 파일에 담기게 되면 큰 프로젝트의 경우 구축이후 유지보수 측면에서 어려움을 겪는다. 모델2 이러한 단점을 보완하기 위해 나온 방식이 Model 2 방식이다. Model 1방식과 달리 각각의 기능을 모듈화 하였으며 MVC 패턴을 웹 개발에 도입한 구조이다. 각각 모듈의 기능을 간단히 정리하면 다음과 같다. Controller : 사용자 요청(URL, 매개변수)를 이용해 Service객체를 호출 및 DB로 부터 받은 Model을 View로 넘겨준다. Service : POJO(순수자바)객체로 구성되며 비즈니..
생성자 생성자는 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이다. 주로 인스턴스 생성 시 실행되는 작업이나 변수 초기화 작업에 사용된다. class Card{ private String cardName; public Card() { } } 생성자의 조건은 클래스와 이름이 같으면서, 리턴 값이 없어야한다. 리턴 값이 없음에도 void형을 적지않는다. 생성자는 보통 public 접근제어자를 이용하는데, private으로 생성자를 만들면 다른 클래스에서 인스턴스를 생성할 수 없게된다. private생성자를 이용한 예제 생성자 오버로딩 class Card{ private String cardName; //생성자1 public Card() { } //생성자2 public Card(String _cardN..
한 클래스에서 매개변수의 개수 또는 타입이 다르면 이름이 같은 메소드를 여러개 정의할 수 있는데, 이처럼 이름이 같은 메소드를 여러개 정의하는 것을 메소드 오버로딩 또는 오버로딩이라고 한다. 오버로딩 조건 메소드 이름이 같아야한다. 매개변수의 개수 또는 타입이 달라야한다. 위의 조건이 만족되면 메소드의 이름이 같더라도 서로 식별될 수 있기때문에 오버로딩이 가능하다. 이 때, 메소드의 리턴타입과 매개변수명은 전혀 영향을 미치지 않는다는걸 주의해야한다. 오버로딩 잘못된 예시 1. 메소드 이름은 같지만 매개변수 이름만 다른 경우 public int add(int a, int b){ return a + b; } public int add(int x, int y){ return x + y; } 메소드의명이 같지만..
지금까지 스프링컨테이너와 Bean객체를 생성할 때 xml 파일을 생성한 뒤 Bean태그를 이용했다. xml 파일을 설정하지 않고도, 어노테이션을 활용해 Java파일에서 스프링컨테이너를 생성하는 과정을 알아본다. xml에서 Java클래스 변환을 알아보면서 다음과 같은 주제를 다룬다. xml > Java로 변환 DB 모델의 property List와 Map 타입의 변수 스프링컨테이너 생성 ■ 스프링 설정파일.xml > Java로 변환 MemberConfig.java @Configuration public class MemberConfig { } xml파일 대신 컨테이너로 사용할 Java 클래스에 @Configuration 어노테이션을 선언해줌으로, MemberConfig 클래스는 스프링설정파일로써, 스프링 ..
Bean객체를 이용하기 위해선 스프링 컨테이너를 생성해준 뒤 getBean을 통해 객체를 가져오는 과정을 거쳐야한다. 이 때 컨테이너와 Bean이 생성되는 시점과 소멸되는 시점에 특정한 작업을 필요한 경우 생명주기를 알아야한다. 컨테이너 생성 = Bean객체 생성 GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:appCtx.xml"); ctx.close(); 스프링 컨테이너가 초기화되면 xml상에 작성된 Bean 객체 또한 같이 생성된다. 이후 ctx.close()를 이용해 스프링 컨테이너를 메모리에서 해제하게 되면 생성된 Bean 객체 또한 같이 해제되므로, Bean객체의 생성과 소멸시점은 스프링컨테이너와 동일..
의존성 주입을 위해 사용되는 어노테이션은 @Autowired, @Resource, @Inject 가 있는데 이 중 비슷한 @Autowired와 @Inject를 비교해보자. @Autowired vs @Inject @Autowired private InjectionBean injectionBean; @Inject private InjectionBean injectionBean; 두 어노테이션 모두 컨테이너상에서 데이터 타입이 같은 Bean을 찾아 의존성을 주입해주는 방식으로 주입 방식과 역할은 동일하며 2가지 차이점을 제외하면 이 둘은 거의 동일하다고 볼 수 있다. 차이점 1. 스프링 컨테이너에 Bean 객체가 존재하지 않을 경우 예외처리 방식 이럴 경우는 거의 없겠지만, 프로그래머가 컨테이너에 Bean을 ..
- Total
- Today
- Yesterday
- CSS
- C++
- 넥사크로
- JVM
- 데이터베이스
- HeidiSQL
- svn
- 오라클
- CS
- 백준
- 개발용어
- 네트워크
- 프로그래머스
- 인턴
- Open API
- SQL
- 국비교육
- Thymeleaf
- Java
- JSP
- 부트스트랩
- 스프링부트
- 스프링
- C
- 환경설정
- 이클립스
- 오류
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |