Thymeleaf Form에서 Get으로 파라메터 넘기고 받는 코드 입니다. 넘기기 Dummy Task개수 Dummy Question개수 등록 받기 //Dummy Task 등록 @GetMapping("/tasks") public String addDummyTasks(@RequestParam(name = "taskCnt", defaultValue = "0") int taskCnt, @RequestParam(name = "taskCnt", defaultValue = "0") int questionCnt){ userService.addDummyTasks(taskCnt, questionCnt); return "admin/main"; }
개요 SpringBoot 2.7.5를 사용하다가 3.0.1로 올리면서 발생한 이슈들을 기록 해놓았습니다. 3.x에는 많은 것들이 바뀌었는데요 결국은 바뀐것을 써야하기 때문에 매도 먼저 맞자는 심정으로 이번에 새로 만드는 프로젝트에 적용 해보았습니다. 한국어로 된 문서가 별로 없는 것은 슬픈일이지만 저도 하나 만들고 다른 개발자님들께서도 하나씩 만들면되니까요. 순서 IntelliJ에서 Jdk 17설치 javax Thymeleaf SpringSecurity jjwt 0.11.5의 .signWith() Gradle SDK 기존 gradle 디렉토리 지우기 secretKey 길이 문제 Dockerfile IntelliJ에서 Jdk 17설치 JDK를 따로 설치할것 없이 IntelliJ에서 클릭클릭으로 Jdk를 설..
SpringBoot 2.x버전 --> SpringBoot 3.x버전 으로 올라옴에 따라 .authorizeRequests()가 depreciated되었습니다. SpringBoot 2.x버전 @Bean public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception { return httpSecurity .httpBasic().disable() .csrf().disable() .cors().and() .authorizeRequests() //user 목록 admin만 가져올 수 있음 .antMatchers(HttpMethod.GET, "/users").hasAuthority(Role.ADMIN.name()) ..
application.yml에 민감 정보가 들어가는 경우 실수로 git에 올라가는 경우 해킹을 당할 수 있습니다. 아래와 같이 db접속 정보가 모두 노출이 되어 있습니다. application.yml spring: # 배포 시에 환경변수에 DB 정보를 넣어줘서 서버 DB 사용 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/feedback username: root password: 1234 jpa: show-sql: true database-platform: org.hibernate.dialect.MySQL8Dialect database: mysql hibernate: ddl-auto: upd..
Mock Test만으로는 db의 작동을 잘 검증하기 어려울 때 h2를 이용하면 수월합니다. 버전 Java 17 SpringBoot 3.0.0 build.gradle 특이사항은 testImplementation com.h2database:h2 입니다. test에서 h2를 쓰겠다는 뜻입니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-security' runtimeOnly '..
@WebMvcTest란? SpringMvc에 관련된 것들만 불러와서 테스트 할 수 있게 해주는 어노테이션. 테스트에 필요한 것들만 불러오기 때문에 로딩하는 속도가 비교적 빨라서 테스트를 자주 실행할때 많은 도움이 되는 어노테이션입니다. MockMvc란? MockMvc는 Spring 애플리케이션의 웹 계층을 테스트하기 위한 목(Mocks) 테스트 지원 클래스 입니다. 이를 사용하면 실제 HTTP 요청을 보내지 않고도 컨트롤러 엔드포인트를 호출하고 해당 엔드포인트의 응답을 검증할 수 있습니다. 이는 테스트의 속도를 향상시키고 테스트 환경을 더욱 예측 가능하게 만듭니다. 오늘 테스트 할 코드는 아래 world라는 String을 리턴하는 Controller입니다. @RestController @RequiredA..
JWT인증을 사용하는 경우 Swagger에서 테스트 하는 방법에 관한 포스트 입니다. 사족으로 제목에서 JWT에 Token이 포함 되어 있는데 JWT Token하면 토큰 토큰이 되는 것은 알고 있습니다만 JWT만 쓰면 좀 허전해서 자꾸 붙이게 되네요. Swagger를 처음 세팅하면 아래 화면 오른쪽에 Authorize 버튼이 보이지 않습니다. Authorize버튼을 누르면 아래와 같은 form이 나옵니다. Token앞에 Bearer 를 넣고 그 뒤에 jwt를 붙여넣기 한 후 사용합니다. 버튼 나오게 하는 방법 아래와 같이 SwaggerConfig에 세팅 하시면 위 Authorize버튼이 보입니다. @Configuration public class SwaggerConfig { @Bean public Doc..
Auditing이란? Audit은 사전적 의미로 감사하다, 심사하다 등의 의미를 가지고 있습니다. DB에 레코드가 I/O되는 것을 추적 하기 위해 created_at, updated_at, deleted_at, updated_by, created_by, deleted_by 등의 컬럼을 테이블마다 만들게 됩니다. 테이블마다 만든다는 것은 JPA관점에서는 Entity클래스 마다 만든다는 것입니다. Auditing 역할을 하는 Field가 중복되는 문제가 있습니다. Spring Data JPA에서는 Auditing이라는 기능을 제공합니다. Auditing하는 컬럼만 묶어놓은 클래스를 extends함으로써 엔티티마다 중복되는 것을 상속으로 처리할 수 있게 해줍니다. EnableJpaAuditing 어노테이션을 ..
개요 gitlab ci를 이용해 빌드 후 linux머신에서 docker로 배포하는 스크립트입니다. crontab은 1분에 1번씩 deploy.sh를 실행 시켜서 docker build후 push를 하고 최대 2분 후에는 배포가 되는 설정입니다. 관련 youtube video https://youtu.be/sAGwCB541H4 Dockerfile FROM gradle:7.4-jdk11-alpine as builder WORKDIR /build # 그래들 파일이 변경되었을 때만 새롭게 의존패키지 다운로드 받게함. COPY build.gradle settings.gradle /build/ RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || t..
- Total
- Today
- Yesterday
- 싱가폴
- 도커각티슈케이스
- 개발자
- docker container whale
- Linux
- vim
- 도커티슈케이스
- 도커각티슈박스
- 2017 티스토리 결산
- Sh
- docker container
- docker container tissue
- 도커티슈박스
- docker container case
- 이직
- shellscript
- docker container tissue box
- 도커컨테이너
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |