일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 코테준비
- 플러터 개발
- nestjs
- Flutter
- 스프링부트
- JPA예제
- JPA 공부
- 기술면접공부
- 자료구조공부
- 코테공부
- K8S
- 자바공부
- querydsl
- 기술공부
- Kafka
- Axon framework
- 플러터 공부
- DDD
- nestjs공부
- 스프링 공부
- nestjs스터디
- 스프링
- 알고리즘공부
- 프로그래머스
- 스프링공부
- JPA스터디
- JPA공부
- 스프링부트공부
- 카프카
- JPA
- Today
- Total
목록스프링 (9)
DevBoi
Functional Interface와 인터페이스를 결합하는 방법에 대해서 알아보자 1개의인터페이스가 있고 이를 가지고 Configuration을 만들어보자 ObjectProvider를 활용해서 한개의 인터페이스로 여러개의 빈을 만드는 과정이다. 간단하지만 아래와 같이 설계했다. public interface Food { public String getEat(); interface FoodHandler { public String eat(); } } public interface FoodFunc { Food.FoodHandler supply(); } public class FoodImpl implements Food{ FoodHandler handler; public Food with(FoodFunc h..
스프링 프레임워크란? - 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다. - 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크이다. - 자바 개발을 위한 프레임워크로 종속 개체를 생성 조립해준다. 스프링 특징 - 경량 컨테이너로서 자바 객체를 직접 관리 * 각각의 개체 생성, 소멸 과 같은 라이프사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. - 스프링은 POJO방식의 프레임워크 * 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속받을 필요가 없어, 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다. - 스프링은 제어의 역행을 지원 * 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어 필요에 따라 스..
스프링 부트와 스프링의 차이 간단하게 추후 공부용으로 정리를 해보자 1. 불필요한 설정? 개발자가 설정할 부분이 줄어든다 Spring 은 xml 지옥과도 같은, web.xml 부터 servlet.xml applicationContext.xml 등과같은 필터, 리스터, 디펜던시 설정 팩토리설정 뷰 리졸버 설정 버전 설정을 다 일일히 해줘야한다. 하지만 spring boot는 버전관리도 스프링부트가 해주기 때문에 호환되는 라이브러리에 대한 종속성 버전 같은걸 개발자가 신경쓸 필요가 없다. starter 의존성 한줄로 많은걸 자동 설정해준다. 2. 내장형 톰캣을 사용한다. 스프링부트는 내장형 톰캣을 사용하고있어서 별도 톰캣설정을 하지않아도 바로 서버를 실행해서 코드를 짤수있다. 또한 환경설정 및 인프라적인 요..
JPA 설정이 기초적인 부분이 완료되었다. 이제 Entity를 생성하고, 재 부팅 해보자. JPA는 객체 지향적 ORM 방식으로 개발할수있도록 도와주는 api중하나이다. 개발자가 쿼리보다는 객체에 신경을 쓸수있도록 도와주고, 충분한 학습이 뒷받침 되면, 아주 좋은 성능을 낸다고한다. 이런식으로 id를 pk로 주고, 재부팅한다, 이렇게 자동적으로 sql에서 생성을 하게된다. ddl-auto 가 update이기때문에, 해당 컬럼을 추가하게 되면 이렇게 반영이된다. @Table , Entity 가 기본적으로 이름이 동일한 테이블을 생성 및 찾지만, 특정 테이블 이름과 매핑할수도있다. @Column(name ="???") 동일한 이름이 아닌, 특정 컬럼이름으로 할수있다. 예) 아 우선 그전에, 자동 재기동을 a..
h2로, 간략하게테스트 할수도있지만 h2는 단순 테스트 용이니니까 실제 db를 사용해서 테스트를 해보자 우선 저번에 db 연결 및 , 스키마 생성(db1까지 완료했다.) 이제 스프링 쪽 설정 파일을 변경해주어야 한다. 우선 이런식으로 yaml파일을 수정해준다. 1. database-platform : mysql 이나 마리아 오로라 등등을 선택해준다. 그리고 dialect에 대한 설정이 있는데, 이건 방언이라고 하는데, db와 쿼리가 각자 달라서, 다른 경우에도 ORM이 되도록 설정해주는 것이다. 2. show-sql : sql 로깅, debug처럼 출력이된다. 3.open-in-view : 영속성 관계를 보장해준다. service ~ repo 까지의 관계에서 해당 트랜잭션을 보장해준다. 쉽게 말해서, 트..
저번에 pom.xml에 Maven 형식으로 starter-security 만 추가하니까 모든 페이지에서 admin lock이 걸리고, 인증 페이지로 redirect 되는걸 알수있었다. 하여, 패턴적용하여, 어떤 페이지에서는 인증을 푸는 방법을 구현하였다. 우선 permitAll()을 하고, 특정 페이지에서 하나씩 어떻게 풀어나가는지 포스팅 및 정리 공부를 할 예정이다. 우선 com.date.blog 하위 패키지에 security 패키지를 추가, SecurityConfig 라는 class파일을 생성하였다. 하여 해당 소스 처럼, 해당 Config 파일은 WebsecurityConfigurerAdapter를 상속받아서, configure을 적용한다. web을 파라미터로 받는 경우에는 내부 프로젝트이 소스 접..
1. 우선 Maven 인경우, pom.xml 의 파일에 해당 디펜던시를 추가해준다. org.springframework.boot spring-boot-starter-security (주의 : 이걸 pom.xml 에 추가하고 프로젝트를 띄우면, 전체 경로가 다 막혀버린다.) 그래서, 우선 pom.xml 주석 처리하고, Login controller 생성 및 간단하게 view 연결 진짜 간단하게 id,pw만 받아서 submit 하는 버튼만 만들었다. 이제 다시 pom.xml 에 스프링 시큐리티 추가해서, 프로젝트를 띄운다. 이런 인증창이 나오면 성공, 우선 다음에는 스프링 시큐리티 해제 방법 과 사용 및 구현 방법을 알아보자
우선 스프링 부트에서 쓰지말라고 했지만, 익숙하고 대중화된? jsp를 쓸때는 경로를 자동으로 잡아주지않아서 별도로 지정을 해주어야 한다. 우선 application.yml 에서 jsp 에 대한 prefix 와 surfix를 잡아준다. spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp 그리고 프로젝트 view 경로를 요로코롬 생성 해준다. 아마 기본으로 src/main 까지는 있지만, webapp부터는 폴더 생성을 해주어야 한다. 어제는 RestController로 api에서 주로 쓰이는 방식으로 메소드를 구현했지만. jsp는 view를 보여줘야 하기때문에 ~ 요로케 MV를 return 하게끔 소스를 짜면, 그냥 test.jsp가 나오게 된..
1. AOP : 스프링의 3대 요소중 하나, 관점 지향 프로그래밍이라는 뜻... 스프링은 프록시 기반 AOP, 빈 AOP 설정 등에 특화 쉽게 말하면, 중복 사용되는 코드들을 재사용 가능하게, 자바로 치면 class화 시켜서 코딩하는 것 - 가장 쉬운 예, Log print , 트랜잭션 처리, 시간처리 Aspect는 포인트 컷 + 어드바이스의 결합이다. 포인트 컷 : 어떤 메소드에 대해 어드바이스 메소드 : 어떤 메소드를 실행?? 약간 인터셉터랑 비슷하다고 생각한다. 물론, Request 단이냐 Servlet 단이냐에 따라 다르긴하지만... 동작시점설명 Before 메소드 실행 전에 동작 After 메소드 실행 후에 동작 After-returning 메소드가 정상적으로 실행된 후에 동작 After-thr..