일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바스크립트
- Middleware
- 추상클래스
- qqOperater
- push함수
- java
- 삼항연산자
- 자바
- 네임드생성자
- Node.js
- DB
- 코딩테스트
- app.use
- 깃허브
- 오류
- Pug
- 배열
- Oracle
- js
- git
- mybatis
- React
- 콘솔게임
- Spring
- int와 integer
- 다형성
- dart
- 리액트
- 생성자
- Sort()
- Today
- Total
목록Spring (12)
평행코드
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bOdQmh/btsClYcBIQL/lRvMpWzhaYF2SHpFBETa60/img.jpg)
🔆ResponseEntity 응답헤더와 바디를 제공 Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 이것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스이다. 🔆HttpEntity 클래스를 상속받아 구현한 클래스가 RequestEntity, ResponseEntity 클래스이다. ResponseEntity는 사용자의 HttpRequest에 대한 응답 데이터를 포함하는 클래스이다. 따라서 HttpStatus, HttpHeaders, HttpBody를 포함한다. 🔆fetch("${pageContext.request.contextPath}") 나중에 프로젝트올렸을때 경로를 못찾을 수 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/viRJs/btsCgtSD6VU/iGyuVTqndEPbNOAZxZiDB1/img.jpg)
Spring boot 🔆웹 애플리케이션의 추세는 더 작고 독릭적인 마이크로 서비스를 가진 아키텍처로이동 → 이에 맞춰서 나온 spring 프로젝트가 바로 spring boot프로젝트 → 작고 독립적인 서비스는 빠르게 실행하는 것이 중요 → spring boot탄생 spring legacy를 생성하기 위해 기본적인 아키텍처(개발환경)에 대한 버전부터신경 쓸 것이 너무 많아 한 개의 애플리케이션을 구헌하는데 많은 시간이 소요된다. → 필요한 환경설정을 최소화하고 개발자가 비즈니스 로직에 집중할 수 있도록함. 🔆스프링 부트 특징 독립적으로 실행되는 스프링 애플리케이션개발 tomcat, jetty, undertow가 내장되어 war파일 배포할 필요가 없음 빌드구성을 위해 starte종속성(pom.xml)을 제공..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dm0CG4/btsB1DHoTWe/Y2ll5dlNeqzlZ6QG5Mqxsk/img.jpg)
Security 적용하는 방법 1. security모듈 추가 2. security설정 → web.xml securityFilter를 등록 → 서비스별 인증, 권한에 대한 설정을 → springbeanconfigration.xml - security namespace가 제공하는 태그를 이용 - 인증방법, 서비스별 권한설정, 인증실패, 성공에 대한 설정, 인증페이지설정 등. pom.xml 암호화 처리를 위한 모듈 org.springframework.security spring-security-core ${org.springsecurity-version} org.springframework.security spring-security-web ${org.springsecurity-version} org.spri..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bPO2Fi/btsBY78UbR6/JCjEKMnQLes7CgEEmPv43K/img.jpg)
AOP (Aspect Orientied Programing) → 관점지향프로그래밍 → 공통의 관심사(서브기능)를 저장하는 aspect 클래스를 생성 Aspect클래스 선언하기 -pointcut : 타겟이 되는 메소드를 지정 → 패턴으로 지정(표현식) -advisor : 실행할 시점을 설정 → 실행할 메소드에 선언 → Before, After, Around(전후), AfterReturing, AfterThrowing AOP적용하기 1. xml 방식 spring bean configuration.xml에 aop namespace를 추가 반환 오브젝트 // 전 : proceed()메소드를 호출하기 전 로직 // 후 : proceed()메소드를 호출한 후 로직 log.debug("===== around befo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lF0V1/btsBQTEAxfJ/o1cYSQwb0sG6DkSl8KH5vK/img.jpg)
spring이 제공하는 TransactionManager클래스를 이용 → DML 구문을 실행하면 기본적으로 commit(); 처리를 함 → 같은 세션에서 DML구문을 실행할때 RuntimeException이 발생을 하면 rollback(); 처리 트랜잭션설정하기 springconfigutation.xml에 txnamespace를 등록, 트랜잭션매니저를 bean으로 등록, root-context.xml 어노테이션방식 적용할 메소드의 선언부에 @Transational @Transactional(옵션설정) AOP방식을 이용해서 처리하기 때문에 AOP설정이 되어있어야함 xml 방식 tx:config 태그로 트랜잭션에 대한 설정 aop:config 태그로 적용할 메소드를 설정 트랜잭션 옵션설정 propagatio..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nxQnH/btsBMT4Chqp/qKiLCxY3NtASdLIKbuYng0/img.jpg)
인터셉터 → 공통의 서비스를 구현할 때 사용 (ex 권한체킹할때) controller의 매핑메소드가 실행되기 전, 후, 응답처리 후 기능을 구현 인터셉터 구현하기 → Spring이 제공하는 HandlerInterCeptor인터페이스를 구현한 클래스를 선언 인터페이스에 정의된 필요한 추상메소드를 재정의 preHandler() postHandle() afterComplition() LogerInterceptor.java 파일 public class LoggerInterceptor implements HandlerInterceptor { //private Logger logger = LoggerFactory.getLogger(LoggerInterceptor.class); @Override public bool..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cvRQQA/btsBGWgKrgp/wBohpdHk6pLpq3hVEJk561/img.jpg)
pom.xml부분에 bean validator구현하는 라이브러리를 등록해준다 org.hibernate.validator hibernate-validator 6.2.5.Final dto부분 스프링에서 제공하느 어노테이션을 활용하여 validator 를 구현한다 public class Member { @NotEmpty(message = "아이디는 반드시 입력하세요") @Size(min = 4, message = "아이디는 4글자 이상 입력하세요") private String userId; @NotEmpty(message = "패스워드는 반드시 입력하세요") @Pattern(regexp = "(?=.*?[a-z](?=.*?[A-Z])(?=.*?[~!@#$%^&*()_+-=])[a-zA-Z~!@#$%^&*()_..