728x90
반응형

JAVA/SPRING 41

[SPRING]@RequiredArgsConstructor

Lombok의 @RequiredArgsConstructor 어노테이션 이 글의 시작 부분에서 말한 @RequiredArgsConstructor에 대해서도 간략하게 설명하겠습니다. @RequiredArgsConstructor어노테이션은 클래스에 선언된 final 변수들, 필드들을 매개변수로 하는 생성자를 자동으로 생성해주는 Lombok 어노테이션입니다. 참고 : https://programforlife.tistory.com/111 [Spring] 생성자 주입을 사용해야 하는 이유 인턴을 시작한 초기 단계에, Spring 프로젝트 코드 분석을 하다가 신기한 점을 발견해서 질문을 한 기억이 있습니다. Spring프로젝트에서 Controller를 작성할 때, 저는 항상 @Autowired 어노테이션을 사 pro..

JAVA/SPRING 2022.12.19

[SPRING] DTO, VO 차이

DTO ( Data Transfer Object ) 순수하게 데이터를 담아 계층간으로 전달하는 객체이다. 로직을 갖고 있지 않은 순수한 데이터 객체이며 메서드로는 getter / setter 만을 갖는다. 전달 용도로만 사용하기 때문에 다른 로직이 필요 없는 것이다. VO ( Value Object ) 값 그자체를 나타내는 객체이다. DTO와 다르게 로직을 포함할 수 있으며, 불변성의 보장을 위해 생성자를 사용하여야 한다. VO는 서로 다른 이름을 갖는 인스턴스라도 모든 속성값이 같다면 ( 필드 값이 같다면 ) 두 인스턴스는 같은 객체라는것이 핵심. 참고 https://maenco.tistory.com/entry/Java-DTO%EC%99%80-VO%EC%9D%98-%EC%B0%A8%EC%9D%B4 [J..

JAVA/SPRING 2022.07.26

[SPRING] DI (Dependency Injection ) 개념

DI (Dependency Injection ) DI( Dependency Injefcntion ; 의존성 종속)란, 클래스간의 의존관계를 스프링 컨테이너가 자동으로 연결해주는 것. Dependency란 객체가 다른 객체와 상호작용하는 것을 말함. https://life-with-coding.tistory.com/433 [Spring] @Autowired 와 DI 개념 정리 인트로 안녕하세요 :) 오늘은 Spring 프레임워크의 @Autowird 어노테이션, 이를 설명하기 위한 DI개념에 대해 정리하겠습니다. 목차 1) DI(Dependency Injection) 개념 2) @Autowired 개념 3) @Autowired 와 @Re.. life-with-coding.tistory.com

JAVA/SPRING 2022.07.23

Model, ModelMap

Model, ModelMap 공통점 model.addAttribute("변수명"); modelMap.addAttribute("변수명"); 둘 다 addAttribute를 사용함 Model or ModelMap에 데이터만 저장 후 View에서 사용목적 Model, ModelMap 차이점 Model - 인터페이스 ModelMap - 클래스 Java Controller @RequestMapping(value = "/test.do") public String test(HttpServletRequest request, Model model, ModelMap modelMap){ String modelStr = "Model Test"; String modelMapStr = "ModelMap Test"; model.a..

JAVA/SPRING 2022.05.01

[SPRING] @Controller와 @RestController

@RestController는 @Controller + @ResponseBody 의 기능을 한다. @Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 반환, 클래스를 Spring MVC컨트롤러로 표시하는데 사용된다. @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON또는 XML 형식으로 HTTP응답에 담아서 전송 RESTful 웹 서비스에서 사용되는 특수 컨트롤러이며 모든 메서드가 뷰 대신 객체로 작성된다.

JAVA/SPRING 2022.03.29

[Spring] No mapping found for HTTP request with URI 에러

에러내용 No mapping found for HTTP request with URI [/project/requestList.do] in DispatcherServlet with name 'appServlet' 해결과정 검색해보니 여러가지 확인 방법이 나와있어서 1. web.xml 에서 DispatcherServlet 선언이 제대로 되어있는지 확인 2. servlet-context.xml 에 설정 확인 : 이 쓰여있는지 3. 컨트롤러에서 URL Mapping이 잘 되어있는지 확인 몇번을 확인해보고도 문제가 없는데 왜 안돼지 했는데 .... requestList.do로 요청해놓고 컨트롤러에서 url mapping이 request로만 적혀져있었다....... 정말 컴퓨터는 시킨대로 잘하는데 항상 내가 제대로..

JAVA/SPRING 2022.01.06

[Spring][Annotation] @RequestParam & @PathVariable

코드를 보다가 @RequestParam 과 @PathVariable의 차이가 정확하게 알고싶어서 검색하게 되었다. 위의 코드로 설명을 하면 @RequestParam - 첫번째 사진에서 @RequestParam 어노테이션의 괄호 안의 "file"은 파라미터 명을 가져온 것이다. - URL에 파라미터를 같이 전달 할때 upload.do?file=file.jsp 이런식으로 전달할 때 많이 사용한다. @PathVariable - 위의 @PathVariable 어노테이션 옆의 'bno'은 파라미터 값을 가져온 것이다. - URL에 파라미터를 같이 전달 할때 / replyList/ bno/ 1{bno} 이런식 ( rest방식 )으로 전달할 때 많이 사용한다.

JAVA/SPRING 2022.01.04

[MyBatis] #{} 과 ${} 의 차이

#{ } - 파라미터가 String 형태로 들어와서 '파라미터' 형태가 된다. ex) id값이 aaa이면 id = #{id} 가 id='aaa' 로 들어간다. - 쿼리 주입을 예방할 수 있어 보안측면에서 유리하다. ${ } - 파라미터가 바로 출력된다. - 해당 컬럼의 자료형에 맞춰 파라미터 자료형도 변경된다. - 쿼리 주입을 예방할 수 없어 보안측면에서는 불리하다. 그리하여 사용자의 입력을 전달할 때는 사용하지 않는 것이 낫다. - 테이블이나 컬럼명을 파라미터로 전달하고 싶을 때 사용한다. 쿼리주입 (SQL Injection)이란? - 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위. - 인젝션 공격은 OWA..

JAVA/SPRING 2022.01.03

[Spring][Spring Security]BCryptPasswordEncoder

BCryptPasswordEncoder이란? - 스프링 시큐리티(Spring Seurity) 프레임워크에서 제공하는 클래스 중 하나로 비밀번호를 암호화하는 데 사용할 수 있는 메서드를 가진 클래스 스프링 시큐리티란? 자바 서버 개발을 위해 필요로 한 인증, 권한 부여 및 기타 보안 기능을 제공하는 프레임워크 (클래스와 인터페이스 모임) - PasswordEncoder 인터페이스를 구현한 클래스 - BCryptPasswordEncoder는 BCrypt 해싱 함수를 사용해 비밀번호를 인코딩 해주는 메서드와 사용자에 의해 제출된 비밀번호와 저장소에 저장되어 있는 비밀번호와의 일치여부를 확인해주는 메서드를 제공 - 생성자의 인자 값(verstion, strength, SecureRandom instance)을 ..

JAVA/SPRING 2022.01.03
728x90
반응형