Spring-diary
-
Spring SecuritySpring-diary/WEB 2020. 2. 24. 12:12
정의 스프링 기반의 보안을 담당하는 스프링 하위 프레임워크 Filter 기반으로 동작하기에 Spring MVC와 분리되어 관리 및 동작. 보안 용어 접근 주체 Principal 보호된 리소스에 접근하는 대상 인증 Authentication 보호된 리소스에 접근하는 대상에 대해서 이 유저가 누구인지, 애플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정 인가 Authorize 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정 권한 어떠한 리소스에 대한 접근 제한, 모든 리소스는 접근 제어 권한이 걸려있다. 인가 과정에서 해당 리소스에 대한 제한된 최소한의 권한을 가졌는지 확인한다. 인증의 절차 크리덴셜 인증 웹에서 사용하는 대부분의 인증 방식. 권한을 부여 받기위해 1차례의 인증과정..
-
Spring JDBC란?Spring-diary/WEB 2020. 2. 20. 22:22
데이터 액세스 공통 개념 DAO(Data Acess Object)는 비즈니스 로직과 데이터 액세스 로직을 분리하는 것이 원칙 DataSource ConnectionPool 사용을 위해 쓴다. Spring에서는 DataSource를 공유 가능한 Spring Bean으로 사용할 수 있도록 제공해 준다. *DataSource 사용 이유 jdbc를 사용하여 DB에 접속하기 위해서는 드라이버를 로드하고 DB에 접속하여 connection 객체를 받아와야 한다. 이런식이면 db에 쿼리를 보낼때 마다 드라이버를 로드하고 커넥션을 생성하고 닫게되는데 커넥션을 생성하고 닫는데 시간이 소모되기에 동시접속자가 많은 사이트의 경우 전체의 성능을 낮추는 원인이 된다. (드라이버도 한번만 로드하면 되는데 불필요하게 여러번 로드하..
-
JDBC TemplateSpring-diary/WEB 2020. 2. 20. 21:26
JDBC의 모든 기능을 최대한 활용할 수 있는 유연성을 제공하는 클래스로 3가지 기능을 수행 -실행 -조회 -배치 사용방법 Dao에서 JdbcTemplate 멤버필드 생성 후 setter로 초기화 해준다. Query문을 작성해 변수로 선언하고 jdbctemplate의 method를 이용해 데이터를 가지고 오거나 수정한다. *rowmapper Template 객체의 query메소드를 통해 결과값을 가져올 때 sql문에 따라 추출된 결과를 리턴받을 객체의 멤버변수에 적절하게 할당하기 위한 매핑수단이다. PreparedStatementSetter를 통해 SQL문의 조건식을 만족시킬 수도 있다.
-
LomBokSpring-diary/WEB 2020. 2. 20. 12:02
정의 롬복(Lombok)은 자바에서 Model(DTO, VO, Domain) Object 를 만들때, 멤버필드(프로퍼티)에 대한 Getter/Setter, ToString과 멤버필드에 주입하는 생성자를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리, 프로젝트이다. 설치 Lombok 사이트에서 jar 파일 다운로드 IDE가 설치된 드라이브에 Jar파일을 둔다. cmd에서 Java -jar lombok.jar 입력후 실행 및 Install Model Object Class에 가서 Annotaion을 준다. -@Data 등 다양한 Annotation이 존재하니 API 찾아볼 것.- @AllArgsConstructor :모든 매개변수 있는 생성자 설정 @NoArgsC..
-
Spring에서 MyBatis 사용하기Spring-diary/WEB 2020. 2. 18. 17:58
스프링에서 MyBatis를 사용하기 위해선 여러가지 복잡한 설정들이 새로운 프로젝트가 시작 될 때마다 한번씩 필요하다. Web.xml Web.xml에서 springDispatcherServlet 설정과 한글처리를 해준다. Pom.xml pom.xml에서 기본적인 라이브러리를 받아온다. -MyBatis를 사용하니 MyBatis를 사용하기 위한 라이브러리 표시만 했다.- Spring Bean Configuration File Spring Bean Configuration File에서 MyBatis의 Session 사용을 Spring에서 관리할 수 있도록 설정한다. PropertyPlaceholderConfigurer,BasicDataSource,SqlSessionFactoryBean,SqlSessionTem..
-
[STS]Spring에서 FileUpload하기Spring-diary/WEB 2020. 2. 17. 13:40
Spring에서 파일 업로드를 하기위해 dependency로 commonsFileUpload로 가지고 온다. 저장되는 경로를 잡아주기 위해 CommonsMultipartResolver를 인스턴스 해주고 임시 저장소인 uploadTempDir를 속성으로 지정해준다. Controller에서 다음과 같은 설정을 해준다 1. File Upload에 대한 Class를 만들어준다. 멤버필드로써 MultipartFile 클래스의 객체를 사용한다. *MultipartFile 클래스 사용자가 업로드한 File을 핸들러에서 손쉽게 다룰 수 있도록 도와주는 Handler의 매개변수 중에 하나 RequestMapping을 통해 파일 저장 경로,파일 이름과 저장을 시키는 행위에대한 프로그램을 짠다.
-
[Annotation] Controller Annotation에 대한 다양한 표현Spring-diary/WEB 2020. 2. 12. 17:21
@RequestParam View에서 정보를 받아올 때 HttpServlet Class로 받아올 수 있지만 매개변수 자체에 Annotation을 줘서 받아올 수 있다. @RequestParam("name")을 사용한다. 특이한 점은 보통의 getparameter로 int를 받아오는 경우 parseInt()를 사용해 형 변환을 해주어야 했지만 @RequestParam을 해주면 알아서 바꿔 준다는 장점이 있다. @GetMapping & @PostMapping @RequestMapping을 사용하게 되면 method =Post로 받아오는 데이터인 경우 명시를 해주어야 했다. @ModelAttribute Data를 매개변수로써 사용한다. 코드가 줄어든다. @RequestMapping("주소") 만약 Mappin..
-
URL에 대해서 (개념 보완 필요)Spring-diary/WEB 2020. 2. 12. 12:55
http://localhost:포트번호/contextpath(web application name=프로젝트이름)/webcontent에서 자원의 위치(물리적디렉토리 or 논리적 경로) 로 되어 있다 -여기서 chrome은 http://를 생략할 수 있다.- 가상의 Webdirectory를 생성할 수 있는데 만약 view단에서 하이퍼링크를 가상디렉토리/.do로 잡아준다면 그 다음에 이어지는 주소도 가상디렉토리를 추가해 주어야한다. *만약 step2.do에서 main2.do로 돌아가고 싶다면 ? 리턴값을 redirect:/주소; 를 써준다.