= lombok02 =
- p06core -
< App.java >
package lecture.p06core;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import lombok.extern.log4j.Log4j;
@Log4j
public class App {
public static void main(String[] args) {
String config = "lecture/p06core/context.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(config);
MyServlet myServlet = context.getBean(MyServlet.class);
MyDao myDao = context.getBean(MyDao.class);
log.warn(myServlet);
log.warn(myDao);
log.warn(myServlet.getMyDao());
}
}
< MyDao.java >
package lecture.p06core;
public class MyDao {
}
< MyServlet.java >
package lecture.p06core;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public class MyServlet {
private MyDao myDao;
// public MyServlet(MyDao myDao) {
// this.myDao = myDao;
// }
}
@AllArgsConsturctor를 삽입하면
아래 주석처리한 것과 같은 식이 완성된다.
< context.xml >
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="myServlet" class="lecture.p06core.MyServlet">
<constructor-arg ref="myDao"></constructor-arg>
</bean>
<bean id="myDao" class="lecture.p06core.MyDao"></bean>
</beans>
id에는 보통 클래스명이나 인터페이스의 lower camel case를 사용하는 것이 일반적이다.
- p07core -
< App.java >
package lecture.p07core;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import lombok.extern.log4j.Log4j;
@Log4j
public class App {
public static void main(String[] args) {
String config = "lecture/p07core/context.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(config);
MyServlet myServlet = context.getBean(MyServlet.class);
MyDao myDao = context.getBean(MyDao.class);
log.warn(myServlet);
log.warn(myDao);
}
}
< MyDao.java >
package lecture.p07core;
import org.springframework.stereotype.Component;
@Component
public class MyDao {
}
< MyServlet.java >
package lecture.p07core;
import org.springframework.stereotype.Component;
@Component
public class MyServlet {
}
< context.xml >
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- <bean id="myServlet" class="lecture.p07core.MyServlet"></bean>
<bean id="myDao" class="lecture.p07core.MyDao"></bean> -->
<context:component-scan base-package="lecture.p07core"></context:component-scan>
</beans>
- p08coreExercise -
< App.java >
package lecture.p08coreExercise;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import lombok.extern.log4j.Log4j;
@Log4j
public class App {
public static void main(String[] args) {
String config = "lecture/p08coreExercise/context.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(config);
Student student = context.getBean(Student.class); // not exception
Teacher teacher = context.getBean(Teacher.class); // not exception
log.warn(student);
log.warn(teacher);
log.warn("--- bean 이름으로 얻기 ----");
log.warn(context.getBean("student"));
log.warn(context.getBean("teacher"));
}
}
< Student.java >
package lecture.p08coreExercise;
import org.springframework.stereotype.Component;
@Component
public class Student {
}
< Teacher.java >
package lecture.p08coreExercise;
import org.springframework.stereotype.Component;
@Component
public class Teacher {
}
< context.xml >
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="lecture.p08coreExercise"></context:component-scan>
</beans>
- p09core -
< App.java >
package lecture.p09core;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
String config = "lecture/p09core/context.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(config);
MyServlet myServlet = context.getBean(MyServlet.class);
MyDao myDao = context.getBean(MyDao.class);
System.out.println(myServlet);
System.out.println(myDao);
System.out.println(myServlet.getMyDao());
}
}
< MyDao.java >
package lecture.p09core;
import org.springframework.stereotype.Component;
@Component
public class MyDao {
}
< MyServlet.java >
package lecture.p09core;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MyServlet {
private MyDao myDao;
public MyDao getMyDao() {
return myDao;
}
@Autowired
public void setMyDao(MyDao myDao) {
this.myDao = myDao;
}
}
< context.xml >
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="lecture.p09core"></context:component-scan>
</beans>
- p10coreExcercise -
< App.java >
package lecture.p10coreExcercise;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
String config = "lecture/p10coreExcercise/context.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(config);
System.out.println(context.getBean("computer")); // not null, not exception
System.out.println(context.getBean("memory")); // not null, not exception
System.out.println(context.getBean(Computer.class).getMemory()); // not null, not exception
}
}
< Computer.java >
package lecture.p10coreExcercise;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import lombok.Getter;
import lombok.Setter;
@Component
@Getter
@Setter(onMethod_ = @Autowired)
public class Computer {
private Memory memory;
/*
* public Memory getMemory() { return memory; }
*
* @Autowired public void setMemory(Memory memory) { this.memory = memory; }
*/
}
< Memory.java >
package lecture.p10coreExcercise;
import org.springframework.stereotype.Component;
@Component
public class Memory {
}
< context.xml >
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="lecture.p10coreExcercise"></context:component-scan>
</beans>
- p11core -
< App.java >
package lecture.p11core;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
String config = "lecture/p11core/context.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(config);
MyServlet s = context.getBean(MyServlet.class);
MyDao d = context.getBean(MyDao.class);
System.out.println(s);
System.out.println(d);
System.out.println(s.getMyDao());
}
}
< MyDao.java >
package lecture.p11core;
import org.springframework.stereotype.Component;
@Component
public class MyDao {
}
< MyServlet.java >
package lecture.p11core;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import lombok.Getter;
@Component
@Getter
public class MyServlet {
private MyDao myDao;
@Autowired
public MyServlet(MyDao myDao) {
this.myDao=myDao;
}
}
< context.xml >
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="lecture.p11core"></context:component-scan>
</beans>
- p12core -
< App.java >
package lecture.p12core;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
String path = "lecture/p12core/context.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(path);
MyServlet s = context.getBean(MyServlet.class);
MyDao d = context.getBean(MyDao.class);
System.out.println(s);
System.out.println(d);
System.out.println(s.getMyDao());
}
}
< MyDao.java >
package lecture.p12core;
import org.springframework.stereotype.Component;
@Component
public class MyDao {
}
< MyServlet.java >
package lecture.p12core;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import lombok.Getter;
@Component
@Getter
public class MyServlet {
@Autowired
private MyDao myDao;
}
< context.xml >
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="lecture.p12core"></context:component-scan>
</beans>
= Spring01 =
- p01controller -
< Controller01.java >
package org.zerock.controller.p01controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/cont01")
public class Controller01 {
// "/cont01"
@RequestMapping("")
public void method00() {
System.out.println("메소드00 일함");
}
// "/cont01/met01"
@RequestMapping("/met01")
public void method01() {
System.out.println("메소드01 일함");
}
// "/cont01/met02" 요청이 왔을 때 일하는 메소드(method02)를 작성하세요. return : void
@RequestMapping("/met02")
public void method02() {
System.out.println("메소드02 일함");
}
// "/cont01/met03", "/cont01/met04" 로 요청이 왔을 때 일하는 메소드
@RequestMapping({"/met03", "/met04"})
public void method03() {
System.out.println("메소드 03 일함");
}
// "/cont01/met05", "/cont01/met06" 로 요청이 왔을 때 일하는 메소드 method05 작성
@RequestMapping({"/met05", "/met06"})
public void method05() {
System.out.println("메소드 05 일함");
}
}
@RequestMapping에 맞는 주소를 입력하면, 내가원하는 메소드를 가져올 수 있게 연습하기 (1)
< Controller02.java >
package org.zerock.controller.p01controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/cont02")
public class Controller02 {
// url : "/cont02/met01" , method : get
@RequestMapping(value = "/met01", method = RequestMethod.GET)
public void method01() {
System.out.println("메소드 01 일함");
}
// url : "/cont02/met01" , method : post
@RequestMapping(value = "/met01", method = RequestMethod.POST)
public void method02() {
System.out.println("메소드 02 일함");
}
// @RequestMapping(value = "/met03", method = RequestMethod.GET)
@GetMapping("/met03")
public void method03() {
System.out.println("메소드 03 일함");
}
// url : "/cont02/met03", method : post 일하는 메소드 method04를 작성
// @RequestMapping(value = "/met03", method = RequestMethod.POST)
@PostMapping("/met03")
public void method04() {
System.out.println("메소드 04 일함");
}
@RequestMapping(value="/met05", method = {RequestMethod.GET, RequestMethod.POST})
public void mthod05() {
System.out.println("메소드 05 일함");
}
}
get은 입력하는거로 바로 확인할 수 있지만, post는 확인하는 방식이 다르기 때문에, 조금 복잡(?)한 방식을 거쳐야 한다.
gitbash를 켜서 확인하는 방법 예시!
식 간출이는 방법 :
-s 하면 위에나오는 통계내용 삭제
> 아무내용.txt (뒤쪽에 붙는 것)은 response 몸통을 가리게 해준다.
-X GET : requestMethod.get을 가져오고 출력 : method03을 가져온다
-X POST : requestMethod.post를 가져오고 출력 : method04를 가져오게 된다.
< Controller03.java >
package org.zerock.controller.p01controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/cont03")
public class Controller03 {
@RequestMapping("/met01")
public void method01(HttpServletRequest request) {
System.out.println("메소드 01 일함");
// 2. request 분석/ 가공
String name = request.getParameter("name");
String ageStr = request.getParameter("age");
int age = Integer.parseInt(ageStr);
// 3.
System.out.println(name);
System.out.println(age);
}
@RequestMapping("/met02")
public void method02(String name, Integer age) {
System.out.println("메소드 02 일함");
System.out.println(name);
System.out.println(age);
}
// /cont03/met03 : request 파라미터, address(String)와 id(Integer)를 받도록 메소드 작성
@RequestMapping("/met03")
public void method03(String address, Integer id) {
System.out.println(address);
System.out.println(id);
}
@RequestMapping("/met04")
public void method04(@RequestParam("name") String contactName) {
System.out.println(contactName);
}
// url:/cont03/met05?country=korea&height=200
@RequestMapping("/met05")
public void method05(@RequestParam("country") String c,
@RequestParam("height") Integer h) {
System.out.println(c);
System.out.println(h);
}
}
request 파라미터에 값을 넣고, @RequestMapping을 할 때, 그 값을 같이 가지고 나오지 않는 다면 null값이 나온다.
http://localhost:8080/controller/cont03/met01?name=john&age=20
를 넣으면, 콘솔창에 아래의 사진과 같이 출력된다.
'수업 복습하기 > Spring' 카테고리의 다른 글
day 06 - Spring 05 + 마무리 (0) | 2022.02.07 |
---|---|
Day 05 - Spring04 + TimeMapper -> mapper.xml/.java (0) | 2022.02.03 |
Day04 - Spring03 + TimeMapper (0) | 2021.12.30 |
Day 03 - spring02 + 아이콘 사용하기 (0) | 2021.12.27 |
Day 01 - lombok 다운 및 설정 + lombok01 (0) | 2021.12.23 |