일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Design Patterns
- Gradle
- jenkins
- db
- javascript
- Oracle
- tool
- Web Server
- php
- AWS
- it
- Spring
- MySQL
- JVM
- Spring Boot
- devops
- laravel
- 맛집
- Git
- java
- redis
- springboot
- 요리
- elasticsearch
- ubuntu
- jsp
- IntelliJ
- Spring Batch
- linux
- ReactJS
- Today
- Total
목록java (242)
아무거나
[spring] @RequestMapping 파라미터 1. Get방식과 Post방식 - 기존에 알고 있는걸로 알고 생략 2. @ModelAttribute - 이전에 파라미터가 많을경우 데이터 모델 객체를 파라미터에 바로 받으면 코드양이 작아지는것을 알 수 있었다. 만약 커맨드 객체의 이름이 길거나 어려워서 바꾸고 싶을 경우에는 @ModelAttribute 어노테이션을 사용하자. Member member일 경우에는 뷰에서 ${member.name} 와 같은 형태로 표시를 해줬지만. 아래와 같이 @ModelAttribute을 사용하면 public String test(@ModelAttribute("m") Member member) { .... } --> ${m.name} 으로 출력이 가능하다. 3. 리다이렉..
[spring] Form 데이터 1. HttpServletRequest 클래스 * HttpServletRequest란 사용자가 어떤 요청을할때 그럼 dispatcher가 controller로 보내주는데 그 때 사용자가 요청한 데이터를 받는 객체이다. [ex] public String test(HttpServletRequest httpServletRequest) { .... } 만약 http://localhost:8080/test?id=bong&pw=1234 로 요청하게 되면 id랑 pw값이 httpServletRequest에 담아진다. 2. @RequestParam 어노테이션 * 위의 1번 방법과 동일하며 해당 방법은 어노테이션을 사용한 방법이다. [ex] public String test(@Reques..
[spring] 컨트롤러 뷰에 데이터 전달 ## 뷰에 데이터 전달 컨트롤러에서 로직 수행 후 뷰페이지를 반환 한다. 이때 뷰에서 사용하게 될 데이터를 객체로 전달 할 수 있다. 1. Model 클래스를 이용한 데이터 전달 [ex] @RequestMapping("/board/content") public String content(Model model) { // Model 객체를 파라미터로 받음 model.addAttribute("id", 30); // Model 객체에 데이터를 담음 return "board/content"; // 컨트롤러에서 전달 받은 Model객체를 view로 리턴 그러면 스프링컨테이너에서 알아서 데이터로 변환해준다. } 2. ModelAndView 클래스를 이용하여 데이터 전달 * ..
[spring] 스프링 MVC 기초 * 스프링 MVC 전체적인동작 - client에서 요청이 들어오면 무조건 먼저 받는곳은 DispatcherServlet이다. DispatcherServlet에서 ( HandlerMapping, View(JSP), ViewResolver, HandlerAdapter, Controller 로 작업을 보낸다 ) 실제로 공수가 많이 들어가는 부분은 controller, view쯤이 될 것이다. ex) [client] -> [DispatcherServlet(HandlerMapping, View(JSP), ViewResolver, HandlerAdapter)] [Controller] 1. 프로젝트 생성 New -> Spring Legacy Project -> spring MVC ..
[spring] AOP(Aspect Oriented Programming) - 2 1. @Aspect 어노테이션기반의 AOP구현 작업순서 (1) 의존 설정(pom.xml) [pom.xml] ......... org.aspectj aspectjweaver 1.7.4 (2) @Aspect 어노테이션을 이용한 Aspect클래스 제작 [LogAop.java] import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.an..
[spring] AOP(Aspect Oriented Programming) - 1 개발시에 공통적인 기능이 많이 발생한단. 이러한 것들을 모든 모듈에 적용하기 위한 방법으로 상속을 통한 방법이 있다. 하지만 상속에는 몇가지 문제가 있다. JAVA에는 다중 상속이 불가하며 다양한 모듈에 상속기법을 통한 공통 기능 부여는 한계가 있다. 그리고, 기능 구현부분에 핵심 기능 코드와 공통 기능 코드가 섞여 있어 효율성이 떨어진다. ( 즉, 코드가 core기능이나 필요기능등. 다 짬뽕되어서 코드의 양이 많아지고 유지보수가 어려워진다. ) 그래서 AOP가 등장했다. AOP는 핵심 기능과 공통 기능을 분리 시켜놓고, 공통 기능을 필요로 하는 핵심 기능들에서 사용하는 방식이다. [ex - 밥만들기] 물을 받고 -> 쌀을..
[spring] 외부 파일을 이용한 설정 1. Environment 객체 - Environment객체를 이용해서 스프링 빈 설정을 한다. Context -> ( ctx.getEnvironment() ) -> Environment -> ( env.getPropertySources() ) -> PropertySources PropertySources : 프로퍼티 추가 및 추출 추가 : propertySources.addLast() 추출 : env.getProperty() [MainClas.java] public class MainClass { public static void main(String[] args) { ConfigurableApplicationContext ctx = new GenericXmlA..
[spring] 생명주기(life cycle)와 범위 1. 스프링 컨테이너 생명 주기 [ex] public class MainClass { public static void main(String[] args) { // 스프링 컨테이너 생성 GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); // 스프링 컨테이너 설정 ctx.load("classpath:applicationCTX.xml"); ctx.refresh(); // load메서드를 사용할경우 refresh메서드를 사용하여 반드시 설정이 다 되도록 하여야 한다. // 스프링 컨테이너 사용 Student student = ctx.getBean("student", Student...
[spring] DI 설정 방법 (1) xml파일을 이용한 DI 설정 방법 [Student.java] public class Student { private String name; private int age; private ArrayList hobbys; private double height; private double weight; // 필드 5개중에 3개(name, age, hobbys)를 초기화해주고 2개를 setter를 이용하고 있다. public Student(String name, int age, ArrayList hobbys) { this.name = name; this.age = age; this.hobbys = hobbys; } public void setName(String name..
- java코드에다가 필요한걸 직접 생성해서 쓰면되는데 굳이 DI를(스프링 설정파일 = xml파일) 생성하여 값을 정의하고 설정하는 번거로운 행위를 왜 할까?에 대한 내용이다. 예를 들어, 인터페이스를 사용하는 이유는 타입을 통일할 수 있으며, 강제적으로 무조건 오버라이드해서 작업을 통일시키는등의 여러 장점이 있다. 그런 장점들은 대규모 프로젝트(팀 단위 프로젝트)를 할 때 큰위력을 발휘한다. 그러므로 스프링의 DI도 사용하면 추후 유지보수 업무가 발생시에는 DI를 이용한 개발의 장점을 느낄 수 있다. AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationCTX.xml"); Pencil pencil =..