기록/BACKEND32 [SpringBoot] DB정보 엑셀로 다운로드하기 1. pom.xml org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web org.apache.poi poi-ooxml 4.1.2 mysql mysql-connector-java runtime 2. Excel Helper 업로드와 동일하게 POI의 Workbook, Sheet, Row, Cell 클래스를 사용한다. 간단한 과정은 다음과 같다. 1. Workbook 생성 2. Workbook에서 Sheet 생성 3. 파라미터로 받은 저장할 객체 리스트를 반복하면서 각 cell에 set한다. 4. ByteArrayOutputStream을 생성해서 workbook을 저장한다. 5. .. 기록/BACKEND 2022. 8. 5. [SpringBoot] 엑셀 DB에 업로드하기 1. pom.xml org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web org.apache.poi poi-ooxml 4.1.2 mysql mysql-connector-java runtime 2. Excel Helper Apache POI 클래스인 Workbook, Sheet, Row, Cell을 사용한다. 과정은 다음과 같다. 1. InputStream에서 Workbook을 생성한다. 2. Workbook에서 Sheet 이름으로 가져와서 Sheet 객체를 생성한다. 3. Sheet.iterator()에서 Row 객체들을 순서대로 가져올 수 있다. 4. Row에서 Cell 객.. 기록/BACKEND 2022. 8. 4. [SpringBoot] JPA repository로 ManyToOne관계 쿼리 작성 이번에 새로 JPA를 사용하게 되었는데, 기존 sql문과는 완전히 다르게 접근해야하는 부분이 있어서 작성해보려고 한다. 내 프로젝트에서 Board와 Comment 엔티티는 다음과 같다. 1. Entity Board @Entity @Table(name = "Board") @Data @DynamicInsert @DynamicUpdate public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "BoardNo", nullable = false) private Integer boardNo; @ManyToOne(fetch = FetchType.LAZY, optional = false) @OnDelete(ac.. 기록/BACKEND 2022. 8. 2. [SpringBoot] JWT토큰 인터셉터 처리하기 보호되어 있는 글 입니다. 2022. 7. 30. [SpringBoot] 비밀번호 암호화하기 보안을 위해 사용자 비밀번호를 암호화시켜서 DB에 저장하려고 했다. 해시 알고리즘은 임의의 길이의 데이터를 해싱처리 해 고정된 길이의 데이터로 매핑한다. 그러나 원문을 다시 만들어낼 수는 없다. 따라서 암호 보안에서는 암호를 해시 처리한 후 사용자 ID와 함께 짝을 지어 DB테이블에 보관한다. 로그인 시, 입력한 암호는 해시 처리되어 DB 테이블의 해시 처리된 입력값과 비교한다. 두 값이 일치한다면 사용자가 올바른 비밀번호를 입력한 것이다. 스프링에서는 비밀번호 암호화를 위해 제공하는 라이브러리가 있다. 지금 진행하는 프로젝트에서는 springboot를 사용하고 있으므로 이 라이브러리를 활용하기로 했다. 1. pom.xml spring boot starter security를 추가한다. org.sprin.. 기록/BACKEND 2022. 7. 23. [SpringBoot] 자바 메일 보내기 회원가입이나 비밀번호 찾기 메뉴를 이용할 때 인증코드를 보내려고 한다. 흐름은 다음과 같다. 1. pom.xml java mail을 보내기 위해 pom.xml에 다음을 추가했다. 이 부분을 추가해야 JavaMailSender나 MimeMessage 등 메일 보낼 때 필요한 클래스들을 사용할 수 있다. org.springframework.boot spring-boot-starter-mail 2. application.properties src/main/resources/application.properties에 다음 설정을 추가한다. 나는 gmail로 보냈기때문에 gmail에 맞는 설정이다. spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.. 기록/BACKEND 2022. 7. 21. [SpringBoot] 따로 개발한 springboot와 vue 합치기 스프링부트와 뷰에서 작업이 모두 끝났다면 뷰 파일을 스프링 static 폴더에 넣어 함께 실행시킬 수 있다. 1. vue 프로젝트 build 터미널에 다음 명령어를 입력하면 dist폴더에 프로젝트를 바로 실행할 수 있는 index.html파일과 css, js파일이 만들어진다. npm run build 2. dist 파일 spring으로 이동시키기 src/main/resources/static 위치에 dist 속 파일을 모두 넣으면 된다. 3. WebConfig 설정하기 내 config는 src/main/java/com/_____/_____/config/WebConfig.java에 있다. 따라서 그 클래스의 addResourceHandler 메서드에 다음을 추가한다. (코드는 나중에 헷갈리지 않기 위해 전.. 기록/BACKEND 2022. 6. 29. [SpringBoot] Swagger 3.x 적용 1. pom.xml 라이브러리를 추가한다. io.springfox springfox-boot-starter 3.0.0 2. application.properties documentationPluginsBootstrapper 빈 관련 오류를 막기 위해 다음을 추가한다. spring.mvc.pathmatch.matching-strategy = ANT_PATH_MATCHER 3. SwaggerConfiguration Class @Configuration, @EnableSwagger2 어노테이션을 추가한 configuration class를 만든다. consumes(Set consumes) parameter content type을 설정한다. produces(Setproduces) response content.. 기록/BACKEND 2022. 5. 10. [SpringBoot] MySql & MyBatis 설정하기 1. pom.xml 프로젝트를 만들 때 MyBatis Framework, MySQL을 추가해도 되고, 프로젝트가 생성된 후 pom.xml 하단 Dependencies에서 검색해 추가해도 된다. 결론적으로 pom.xml에 이 코드가 생성된다. org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.2 mysql mysql-connector-java runtime 2. application.properties src/main/resources/application.properties에 다음을 작성한다. spring에서 servlet-context.xml에 있던 설정들이다. #DataBase Setting spring.datasource.driver-class-na.. 기록/BACKEND 2022. 5. 9. [Spring] Annotation 정리 @Controller Presentation Layer의 MVC Controller에 사용한다. 스프링 웹 서블릿에 의해 웹 요청을 처리하는 컨트롤러 빈으로 선정한다. @Service Service Layer 클래스에 사용한다. @Repository DAO 또는 Repository 클래스에 사용한다. DataAccessException 자동변환과 같은 AOP 적용대상을 선정하기 위해 사용한다. @Component @Repository, @Service, @Controller 의 레이어 구분을 적용하기 어려운 일반적인 경우에 설정한다. @Scope component의 scope을 설정한다. 기본값은 singleton이다. @Configuration 설정 클래스임을 명시한다. @Bean 스프링 컨테이너가 관.. 기록/BACKEND 2022. 5. 3. [Spring] 프로젝트 실행 순서 1. 서버 실행 -> server.xml 서버가 실행되면 서버의 server.xml 파일로 들어가서 프로젝트에 대한 context를 읽는다. 2. 현재 프로젝트 읽기 시작 -> META-INF/context.xml 현재 프로젝트로 들어오면 가장 처음으로 META-INF의 context.xml을 읽는다. context.xml에는 주로 db정보가 들어있다. (JDNI 위해) 3. web.xml 1. 웹 관련X context-param : root-context.xml 위치를 알려준다. listener : Spring Container를 생성한다. 이 컨테이너를 servlet, filters에서 같이 쓴다. 2. 웹 관련 filer, filter-mapping : 필터를 지정하고 매핑한다. servlet : .. 기록/BACKEND 2022. 5. 2. [SpringBoot] JSP사용하기(sts 3) 이 방식은 sts 3에서만 유효하다. 4 이상이라면 jsp파일이 더이상 만들어지지 않아서 다른 설정이 더 필요하다. 1. pom.xml jstl과 jsp(jasper - jsp 해석) 관련 라이브러리를 추가한다. Spring에서처럼 버전을 직접 설정하지 않는 이유는 스프링부트에서 알아서 설정해놓았기 때문이다. 미리 설정해놓은 버전 정보는 org.springframework.boot:spring-boot-dependencies:버전명.pom에 있다. javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper 2. jsp 페이지 모음 폴더 생성 jsp 페이지를 모아놓을 폴더를 생성한다. src/main/webapp/WEB-INF 밑에 폴더를 만들면 된다... 기록/BACKEND 2022. 5. 1. 이전 1 2 3 다음