KH/Spring 8

@PathVariable

@PathVariable 가변인자 처리하기 위해 사용하는 키워드 게시물 번호로는 1~N번까지 다양하기 때문에 특정 번호에 대한 URL Mapping을 하면 매우 번거롭고 코드가 지저분하다. 그러므로 이와 같은 가변인자 처리를 통해 boardNo를 일관된 방식으로 처리한다. 제이슨 타입으로 프론트로 부터 전달된 정보를 PathVariable을 통해서 매칭한다. @PathVariable("boardNo") Long boardNo 보드넘버가 들어오면 어이거 가변인자래 ? 들어온 숫자가 뭐니? 하면서 아라서 boardNo에 넣어줌 가변인자를 사용한 URL Mapping은 아래와 같이 {가변인자} 형태로 작성한다. @DeleteMapping("/{boardNo}") public void boardRemove (@..

KH/Spring 2023.01.16

[Spring] Spring MVC 에서 @ModelAttribute 란 ?

@ModelAttribute는 크게 두가지 역할을 한다. 1. @ModelAttribute - 요청 파라미터 처리 2. @ModelAttribute - Model 추가 예를들어 게시글 목록에서 검색어를 입력하여 특정 게시글들을 찾는과정이라고 하자. - 컨트롤러 - @controller @RequestMapping("/board/*") public class BoardController { @RequestMapping(value = "/list" , method = RequestMethod.GET) public String list(Model model, @ModelAttribute("scri") SearchCriteria scri ) throws Exception{ logger.info("list"); ..

KH/Spring 2022.12.04

[Spring] redirect 객체 전달 : RedirectAttributes

Redirect시 데이터를 전달할수 있는 방법 RedirectAttributes 클래스를 사용하여 전달한다. redirect시 RedierctAttributes클래스를 이용해 효과적으로 alert 창을 띄울 수도있다. 1.addAttribute @RequestMapping(value="/aaa/bbb/ddd.do", method =RequestMethod.POST) public String test(ModelMap model, RedirectAttributes rttr) throws Exception{ String message ="안녕."; rttr.addAttribute("message", message); return "redirect:/home"; } 이런식으로 하면 redirect에 messag..

KH/Spring 2022.12.01

[Spring] @SessionAttributes 와 @ModelAttribute

SessionAttributes 1. 컨트롤러 메소드가 생성하는 모델 정보 중에서 @SessionAttributes에 저장한 이름과 동일한 이름이 있다면 이를 세션에 저장해 준다. - 뷰가 이 모델을 참조해서 기존 사용자 정보를 폼에 뿌려줄 수 있게 하기 위해서 이다. 2. @ModelAttribute 가 지정된 파라미터가 있을때 이 파라미터에 전달해줄 오브젝트를 세션에서 가져온다. 즉 @SessionAttributes("kakao")가 설정되어 있고 @ModelAttribute("kakao")를 만들고자 한다면 SessionAttrivutes에 지정된 이름과 @ModelAttribute의 파라미터 이름을 비교하여 이름이 같은경우 오브젝트를 새로 생성하지 않고 세션에 있는 오브젝트를 사용한다. -세션에 ..

KH/Spring 2022.11.30

[Spring] AOP(Aspect Oriented Programming)

AOP란 ? 관점 지향 프로그래밍이다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부과관점으로 나누어서 보고 그 관점을 기준으로 모듈화(어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것) 하겟다는 것이다. 즉, 개발 로직과 비즈니스 로직을 분리하여 관리하는 것이 Spring 개념이다. 즉 공통 관심사항과 핵심 관심 사항(코어코드)를 분리하여 반복된 작업을 줄이는 Spring 개념이다. 쉽게 설명하자면 100개의 함수가 처리해야 할 공콩 기능들을 분리해 별도의 Bean으로 관리하는 컨셉이다. AOP는 흩어진 관심사를 모듈화 할 수 있는 프로그래밍 기법이다. 위와 같이 클래스 A,B,C에서 공통적으로 나타나는 색깔은 중복된 메소드, 코드, 필드 등이다. 예를 들어 빨간색 블럭을 수정해야 한다고 하면..

KH/Spring 2022.11.28

[Spring] @Component와 Bean의 차이

Spring은 개발의 제어권이 스프깅 컨테이너(IOC 컨테이너에 ) 있다. 스프링이 개발자를 대신해 객체를 제어하기 위해서는 객체들이 Bean으로 등록되어 있어야 한다. Spring Bean 이란 ? Spring IOC 컨테이너가 관리하는 자바객체를 빈(Bean) 이라고 부른다. Spring Framework는 Spring Bean을 얻기 위해 ApplicationContext.getBean()과 가은 메소드를 사용하여 Spring에서 직접 자바 객체를 얻어서 사용한다. [ 스프링에서 빈으로 등록하는 방법 ] 크게 두가지 방법이 있다. @ComponentScan어노테이션을 사용한 Component Scanning 빈 설정파일에 직접 빈 등록(@Configuration, @Bean) 스프링 MVC 에서는 ..

KH/Spring 2022.11.28

[Spring] 암호화_MD5 , SHA-256

- 설정하기 - pom.xml에서 https://mvnrepository.com/ 에서 아래의 것들 검색해서 메이븐 복사하기 복사해서 pom.xml에서 들 사이에 적어주기 적어주어야 할것들 org.springframework.security spring-security-core 5.2.1.RELEASE org.springframework.security spring-security-web 5.2.1.RELEASE org.springframework.security spring-security-config 5.2.1.RELEASE Cryto MD5,SHA-256은 단방향 암호화로 비밀번호를 암호화하거나 데이터 전송등에서 무결성을 체크하는데 사용된다. MD5 해시 : MessageDigest 객체 생성시 알..

KH/Spring 2022.11.25

[Spring] @Autowired, @Resource, @Inject 어노테이션의 차이점

어노테이션은 Di 의존성 주입을 위해 사용한다. 예를들어 Car라는 클래스에서 Tire = tire이라는 타 객체의 인스턴스를 사용한다고 가정하자. 그러면 이때 Car class를 쓰기위해서는 Tire을 주입해주어야 하는데 이럴때 사용한다. @Resource @Autowired @Inject 설명 java에서 지원 Spring에서 지원 자동주입이며 종속적 java에서 지원 사용하는 위치 필드, 한개의 파라미터인 빈 프로퍼티 setter 메소드 필드, 생성자, 여러개인 파라미터 메소드 필드, 생성자, 메소드 연결 또는 검색 방식 이름으로 연결 안되면 타입으로 연결 타입으로 연결 안되면 이름 타입으로 연결 안되면 이름 특이사항 스프링 프레임워크에 종속적 강제 연결하기 @Resource(name="title"..

KH/Spring 2022.11.24