728x90
10. MVC 3 - 세션, 인터셉터, 쿠키
프로그래밍/SPRING 2022. 8. 4. 00:10

HttpSession - 로그인 유지 //요청 매핑 애노테이션 적용 메서드에 HttpSession 파라미터 추가 @PostMapping public String form(LoginCommand loginCommand, Errors errors, HttpSession session) { ... } // 항상 HttpSession 추가 // 요청 매핑 애노테이션 적용 메서드에 HttpServletRequest 파라미터를 추가하고 // HttpServletRequest를 이용해서 HttpSession을 구함 @PostMapping public String submit ( LoginCommand loginCommand, Errors errors, HttpServletRequest req) { HttpSessio..

09. MVC 2 - 커맨트 객체 값 검증 및 에러 메시지 처리
프로그래밍/SPRING 2022. 8. 3. 03:11

validator(Object target, Errors errors) - 첫 번째 파라미터로 전달받은 객체를 검증하고 오류 결과를 Errors에 담는다 - 검사 대상 객체의 특정 프로퍼티나 상태가 올바른지 검사 - 올바르지 않다면 Errors의 rejectValue() 메서드를 이용해 에러 코드 저장 String name = regReq.getName(); if(name == null || name.trim().isEmpty()) { errors.rejectValue("name", "에러 코드"); } validator(RegisterReqeust regReq, Errors errors) // errors 객체의 getFieldValue("name") 메서드를 실행해서 // 커맨드 객체의 name 프로..

08. MVC 1 - 컨트롤러, 뷰 구현
프로그래밍/SPRING 2022. 8. 2. 22:57

Controller get 방식과 post 방식 @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model, @RequestParam(value = "name", required = false) String name) { model.addAttribute("greeting", "안녕하세요, " + name); return "hello"; } @PostMapping("/hello") public String hello(Model model, @RequestParam(value = "name", required = false) String name) { model.addAttribute("gre..

07. Spring Web MVC
프로그래밍/SPRING 2022. 8. 1. 21:49

MVC(Model - View - Controller) Pattern Model - Service, Dao - 애플리케이션 상태의 캡슐화 - 상태 쿼리에 대한 응답 - 애플리케이션의 기능 표현 - 변경을 view에 통지 View - .jsp - 모델을 화면에 시각적으로 표현 - 모델에게 업데이트 요청 - 사용자의 입력을 컨트롤러에 전달 - 컨트롤러가 view를 선택하도록 허용 // servlet-context.xml - redirect view >> view 이름에 "redirect:" 접두어를 붙이면 지정한 페이지로 redirect 됨 >> redirect:/board/list.html?pg=1 >> redirect:http://localhost/board/list.html?pg=1 @Controlle..

06. AOP
프로그래밍/SPRING 2022. 4. 26. 18:38

proxy - 핵심 기능의 실행은 다른 객체에 위임하고 부가적인 기능을 제공하는 객체 - 대상 객체: 실제 핵심 기능을 실행하는 객체 - 핵심 기능을 구현하지 않는 대신 여러 객체에 공통으로 적용할 수 있는 기능 구현 AOP - Aspect Oriented Programming - 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법 더보기 핵심 기능에 공통 기능 삽입 - 컴파일 시점에 코드에 공통 기능을 삽입하는 방법 - 클래스 로딩 시점에 바이트 코드에 공통 기능을 삽입하는 방법 - 런타임에 프록시 객체를 생성해서 공통 기능을 삽입하는 방법(Spring에서제공) 주요 용어 주요 용어 의미 Advice 언제 공통 관심 기능을 핵심 로직에 적용할지를 정의 예를 들어 '..

04. DI
프로그래밍/SPRING 2022. 4. 23. 22:17

DI(Dependency Injection): 의존성 주입 클래스가 다른 클래스의 메서드를 사용하는 것 ex) MemberRegisterService 클래스가 selectByEmail() 메서드를 사용하기 위해 MemberDao 클래스에 의존 생성자 방식 public class MemberRegisterService { private MemberDao memberDao; // 캐시 적용 Dao // MemberDao를 상속받음 // public class CachedMemberDao extends MemberDao { private MemberDao memberDao = new CachedMemberDao(); // 생성자를 통해 의존 객체를 주입받음 public MemberRegisterService(..

03. Spring Framework
프로그래밍/SPRING 2022. 4. 23. 21:46

@Controller @Service @Repository - Dao => @Component - 모두 다 쓸 수 있지만 보통 Dto를 정의할 때 쓴다 Main public class HelloMain { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("주소/application.xml"); HelloMessage helloMessage = context.getBean("id1", HelloMessageKor.class); String greeting = helloMessage.hello("이름"); } } Bean //application.xml //ref가 id..

02. IoC & Container
프로그래밍/SPRING 2022. 4. 17. 23:48

Container IoC Container - 오브젝트의 생성과 관계설정, 사용, 제거 등의 작업을 애플리케이션 코드 대신 독립된 컨테이너가 담당 - 컨테이너가 코드 대신 오브젝트에 대한 제어권을 갖고 있어 IoC라고 부름 - 이런 이유로 스프링 컨테이너를 IoC 컨테이너라고 부르기도 함 - 스프링에서 IoC를 담당하는 컨테이너에는 BeanFactory, ApplicationContext가 있음 - 컨테이너 초기화 -> 빈 객체의 생성, 의존 주입, 초기화 - 컨테이너 종료 -> 빈 객체의 소멸 Spring DI Container - Spring DI Container가 관리하는 객체를 빈(Bean)이라고 하고, 이 빈들의 생명 주기(Life-Cycle)를 관리하는 의미로 빈팩토리(BeanFactory)..

01. Spring
프로그래밍/SPRING 2022. 4. 12. 23:58

Spring 스프링이란? 자바를 이용해 웹 애플리케이션을 개발할 때 주로 사용하는 기술 스프링 프레임워크의 특징 - 의존 주입(Dependency Injection: DI) 지원 - AOP(Aspect-Oriented Programming) 지원 - MVC 웹 프레임워크 제공 - JDBC, JPA 연동, 선언적 트랜잭션 처리 등 DB 연동 지원 Maven pom.xml - 메이븐 프로젝트 설정 정보 관리 파일 - 의존 모듈이나 플러그인 등에 대한 설정을 담는다 - 메이븐은 한 개의 모듈을 아티팩트라는 단위로 관리 - dependency에 설정을 추가한다는 것은 소스 코드를 컴파일하고 실행할 때 사용할 클래스 패스에 spring-context 파일을 추가한다는 것을 의미 메이븐 리포지토리 - pom.xml..

728x90