설치프로그램
spring-tool-suite-4-4.26.0
jdk-17
lombok.jar
기본적으로 프로젝트 생성하고 웹에 켜보는 학습
프로젝트 생성
프로젝트 이름만 변경하고 그대로 생성
src/main/resources 안에
application.properties 안에
spring.application.name=aws0822boot
//애플리케이션 이름을 "aws0822boot"로 설정합니다.
server.address = localhost
//서버 주소를 로컬호스트로 지정합니다.
server.port=8014
//서버 포트를 8014로 설정합니다.
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/aws0822?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
// MySQL 데이터베이스에 연결하기 위한 URL입니다. 여기서:
//127.0.0.1은 데이터베이스 서버 주소(로컬호스트),
// aws0822는 데이터베이스 이름,
// useSSL=false는 SSL 연결을 비활성화,
//serverTimezone=UTC는 서버 시간대를 UTC로 설정합니다.
spring.datasource.username=root
//: 데이터베이스 사용자 이름을 "root"로 설정합니다.
spring.datasource.password=1234
//: 데이터베이스 비밀번호를 "1234"로 설정합니다.
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
//: MySQL JDBC 드라이버 클래스를 지정합니다.
spring.thymeleaf.prefix=classpath:templates/
//: 템플릿 파일이 위치한 디렉터리를 지정합니다 (/src/main/resources/templates).
spring.thymeleaf.suffix=.html
//: 템플릿 파일 확장자를 .html로 지정합니다.
spring.thymeleaf.cache=false
//: 템플릿 캐싱을 비활성화하여 개발 중 변경 사항이 즉시 반영되도록 합니다.
server.error.whitelabel.enabled=true
//: 스프링 부트 기본 Whitelabel 오류 페이지를 활성화합니다.
spring.jpa.show-sql=true
//: 실행되는 SQL 쿼리를 콘솔에 출력하도록 설정합니다.
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQLDialect
//: Hibernate가 사용할 MySQL 방언(dialect)을 지정합니다.
spring.jpa.defer-datasource-initialization=true
//: 데이터 소스 초기화를 지연시킵니다.
spring.jpa.hibernate.ddl-auto=create
//: 애플리케이션 실행 시 데이터베이스 스키마를 새로 생성하도록 합니다. 이는 개발 환경에서 주로 사용되며, 프로덕션 환경에서는 적합하지 않습니다.
spring.sql.init.mode=always
//: SQL 초기화 스크립트를 항상 실행하도록 설정합니다.
spring.sql.init.encoding=UTF-8
//: SQL 초기화 파일의 인코딩을 UTF-8로 지정합니다.
위코드 작성해주기
Aws0822bootApplication 클래스에서
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) // 보안 기능은 제외하고 인덱스 페이지 열어보자
public class Aws0822bootApplication {// 모든 부트의 프로그램을 가동시키는 역할을 한다 main 과 같은 역할
public static void main(String[] args) {
SpringApplication.run(Aws0822bootApplication.class, args); // 서버를 부팅시키고 부팅을 시키면서 클래스를 실행시키게 됨
// 서버가 없는 이유가 이안에 내장되어 있기 때문임
}
}
이렇게 적어주고
static 파일안에 초기 파일로 index.html 만들고 확인해보기
<!DOCTYPE html>
<html>
<head>
<titel>부트</titel>
<meta charset="UTF-8">
</head>
<body>
hello world!
<br>
static폴더에 들어있는 기본폴더 index.html
</body>
</html>
포트번호 확인하고 서버 실행
도메인에 localhost:포트번호 엔터
하면 아래 창 떠야함

타임리프로 값가져와서 보여주기 학습

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>테스트</title>
<meta http-equiv="Content-Type" contents="text/html;charset=UTF-8">
</head>
<body>
타임리프 학습하기
<div>
<h3 th:text="${value}">안녕하세요</h3>
<h3 th:if="${value == '안녕하냐고요?'}" th:text="'아니요'"></h3> <!-- 만약에 value 값이 안녕하냐고요? 라는 값이 넘어오면 아니요 출력-->
<div th:each="tv : ${alist}">
<h3 th:text="${tv.name}">이름 나타나는 자리</h3>
<h3 th:text="${tv.memberid}">아이디 나타나는 자리</h3>
</div>
</div>
</body>
</html>
TestController 코드
package com.example.demo.controller;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import com.example.demo.domain.*;
@Controller
public class TestController {
@GetMapping(value = "/test") // request mapping + 메서드 방식으로 작성하던 것을 한번에 GetMapping으로 어노테이샨 적어주기
public String test(Model model) {
ArrayList<TestVo> alist = new ArrayList<TestVo>(); // 컬랙션 계열의 list 맵도 있고 ~
TestVo tv1 = new TestVo();
tv1.setName("홍길동");
tv1.setMemberid("hong");
alist.add(tv1);
TestVo tv2 = new TestVo();
tv2.setName("이순신");
tv2.setMemberid("lee");
alist.add(tv2);
TestVo tv3 = new TestVo();
tv3.setName("강감찬");
tv3.setMemberid("kang");
alist.add(tv3);
model.addAttribute("alist",alist);
model.addAttribute("value","안녕하냐고요?");
return "test";
}
}
TestVo 코드
package com.example.demo.domain;
public class TestVo {
private String name;
private String memberid;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMemberid() {
return memberid;
}
public void setMemberid(String memberid) {
this.memberid = memberid;
}
}
성공하면 아래와 같이 출력
