Programming/스프링(spring) - Enterprise 33

스프링(spring)/ 스프링부트(spring boot) 빈 객체 정의

# 스프링부트에서는 기본적으로 WEB-INF폴더 내에, -context.xml, web.xml 파일이 없다. 기존 설정파일에서 추가하던 내용들은 모두 자바 클래스 내에서 설정 가능하다. 그럼 빈 객체 설정은? 컴포넌트 스캔 처리 내의 패키지에서, 해당 객체 클래스 생성. 예를 들어, 스프링 시큐리티 내의 BCryptPasswordEncoder 객체 생성(따로 사용할 경우) package com.boot.main; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.crypto.bcrypt.BC..

스프링(spring)/ 스프링부트(spring boot) 배포

# 프로젝트는 스프링부트 JAR빌드 패키지를 사용했다. 프로젝트를 배포하는 몇가지 방법이 있는데; 그 중에서 부분 무료 배포 사이트(Qoddi)를 통해 구현해 본다. 가입 절차 까지는 아래 사이트 참고. https://velog.io/@couchcoding/%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EC%9A%A9-%EB%AC%B4%EB%A3%8C-%EB%B0%B1%EC%97%94%EB%93%9C-%EC%84%9C%EB%B2%84-%EB%A7%8C%EB%93%A4%EA%B8%B0-Qoddi-Spring-%EB%B0%B0%ED%8F%AC-%EC%98%88%EC%A0%9C#2-%EC%95%B1%EB%A7%8C%EB%93%A4%EA%B8%B0 포트폴리오용 무료 백엔드 서..

스프링(spring)/ 스프링부트(springBoot) JAR 패키징

# 스프링부트 Jar 패키징 그동안 서블릿 컨테이너 설정과 jsp 사용을 위해, War 패키징으로만 사용해왔다. 하지만, 보다 독립적인 실행이 가능하고, 간편한 배포를 위해 Jar 패키징을 사용해 프로젝트 생성. 의존성 패키지로(mysql, mybatis, jdbc, thymeleaf)를 추가 했다. pom.xml 의존성 관리 파일은 기존 spring Boot와 진행이 같고, application.properties 파일에 jsp관련 구문을 빼고는 기존 spring Boot과 진행이 같다. 그 다음, 이제 다른 것이 JAR 패키징에서는 jsp를 사용하지 않는다. 단순히 src/main/resources 폴더의 static, templetes 폴더에 html과 css, js파일을 넣어 사용한다. 나머지 M..

스프링(spring)/ War, Jar(package type)

1. **WAR 파일과 JAR 파일의 차이:** - **WAR (Web Archive):** 주로 웹 애플리케이션을 배포하는데 사용됩니다. 웹 관련 리소스 (JSP 파일, HTML, CSS 등)와 Java 클래스 파일, 라이브러리, 설정 파일 등을 포함합니다. WAR 파일은 서블릿 컨테이너(예: Apache Tomcat)에서 실행됩니다. - **JAR (Java Archive):** Java 클래스 파일, 라이브러리, 리소스 등을 포함하는 일반적인 자바 아카이브 형식입니다. 주로 독립형 애플리케이션을 배포할 때 사용됩니다. JAR 파일은 Java Virtual Machine (JVM)에서 직접 실행할 수 있습니다. 2. **WAR 파일 배포 문제:** 무료 프로그래밍 배포 사이트에서 Spring 프레임워..

스프링(spring)/ 다듬기 2(어노테이션에 대한 고찰)

@어노테이션(Anotation) : 자바 프로그래밍 언어에서 메타데이터(metadata)를 표현하는 방법 중 하나. 메타데이터란 코드 자체가 아니라 코드를 해석하고 처리하는 데 도움을 주는 정보를 의미합니다. 어노테이션은 주로 클래스, 메서드, 필드 등의 요소에 부가적인 정보를 제공하거나 처리를 지시하는 데 사용됩니다. 스프링 프레임워크 및 다른 프레임워크에서는 어노테이션을 활용하여 코드의 의미를 확장하고 설정을 간소화하는 등의 목적으로 활용 1. @Controller: - `@Controller` 어노테이션은 Spring MVC에서 컨트롤러 클래스임을 나타내는 데 사용됩니다. - 이 어노테이션을 사용하여 클래스를 스프링 빈으로 등록하면, 해당 클래스는 HTTP 요청을 처리하는 컨트롤러 역할을 할 수 있..

스프링(spring)/ 스프링부트(springBoot)-mysql연동

1. 스프링부트 프로젝트 구조 * 기본적으로 패키지들과 mappers폴더를 추가했다. 2. 의존성 패키지 추가 설치 JDBC/ Mybatis/ Mysql org.springframework.boot spring-boot-starter-jdbc org.mybatis.spring.boot mybatis-spring-boot-starter 2.3.1 org.mybatis.spring.boot mybatis-spring-boot-starter-test 2.3.1 test com.mysql mysql-connector-j runtime 3. application.properties 파일 프로퍼티 설정. 아래 코드 추가 # MySQL spring.datasource.url=jdbc:mysql://127.0.0.1:..

스프링(spring)/ 스프링부트(Spring Boot) 프로젝트 생성

1. Spring Starter Project(스프링부트 프로젝트 생성 템플릿) * (우선은 Maven 기준으로) 중요한건 스프링부트는 기본적으로 jsp 미지원인데; Packaging형식으로 War로 하면 사용 가능하다. 자바버전을 선택하고 NEXT 후에, 스프링부트 버전과 호환이 가능해야 한다. 예전에 올렸던 버전관련 게시물 참고하면 된다. * 웹 어플리케이션이 주 프로젝트일 것이기에 의존성 체크하면 손쉽게 스프링을 시작할 준비가 된거다. 2. jsp사용 환경을 만들어 주기위해, pom.xml 파일 의존성 추가. jstl jstl 1.2 org.apache.tomcat.embed tomcat-embed-jasper provided 3. 그리고 jsp 경로 폴더 및 메인 홈 페이지 jsp 생성. src/..

스프링(spring)/ 다듬기 1(MVC에 대한 고찰)

1. 제일 중요한 url 매핑기능 익히기 @GetMapping("/account/join") public void getJoin(Model model) throws Exception { List countryCodes = null; countryCodes = userService.getCountryCodes(); model.addAttribute("countryCodes", countryCodes); } @PostMapping("/account/update") public String postUpdate(UserVO vo) throws Exception { String inputPass = vo.getPwd(); String pwd = pwdEncoder.encode(inputPass); vo.setPw..

스프링(spring)/ +더하기 6(게시판별 좋아요 시스템 구현)

1. 1:1 논쟁이라는 시스템을 살려서 그 매치 자체에 대한 좋아요 기능을 구현하고자 한다. 먼저 천천히 숨을 가다듬고, 매퍼파일 부터 추가한다.(새로운 테이블 객체 생성시, VO파일에 추가 필수!) update counter set senderGood = senderGood+#{senderGood}, senderBad = senderBad+#{senderBad}, receiverGood = receiverGood+#{receiverGood}, receiverBad = receiverBad+#{receiverBad}, debateGood = debateGood+#{debateGood}, debateBad = debateBad+#{debateBad} where channel= #{channel} SELEC..

스프링(spring)/ +더하기 5(관전 시스템)

1. 먼저 해당 게시글을 토대로 생성된 1:1 매칭을 댓글처럼 모두 나열 시켜본다. 먼저 jsp파일에 링크 추가 논쟁 둥지 2. Controller단에서 url매핑 // 논쟁 둥지 @RequestMapping(value = "/debateNest", method = RequestMethod.GET) public void getDebateNest(@RequestParam("idx") int idx, Model model) throws Exception { List debateNest = null; debateNest = service.debateNest(idx); model.addAttribute("debateNest", debateNest); List originList = null; originList..