새프로젝트 : springA (회원제 게시판)
패키지 : net.softsociety.springA
하위 패키지 : controller, service, dao, domain, util, security
테이블 : 회원정보, 게시글, 리플(별도의 테이블 ; 정규화)
Name : SpringA
Type : Gradle - Groovy
Packaging : Jar
Java Version : 8
Language : Java
Artifact : SpringA
Description : 회원제 게시판 연습
Package : net.softsociety.springA
Project Dependency 설정
->
Lombok
MyBatis Framework
ORacle Driver
Spring Boot Devtools
Spring Security
Spring Web
Thymeleaf
프로젝트 생성 완료
springA_sql.txt 파일 생성 후 테이블 설계
-- springA 예제 테이블
-- 회원정보
create table springA_member (
memberid varchar2(20) primary key, --사용자 식별 아이디
memberpw varchar2(100) not null, --비밀번호
membername varchar2(30) not null, --사용자 이름
email varchar2(50) , --이메일
phone varchar2(30) , --전화번호
address varchar2(200) , --주소
enabled number(1) default 1 check (enabled in (0, 1)), --계정상태. 1-사용가능, 0-불가능
rolename varchar2(20) default 'ROLE_USER' check (rolename in ('ROLE_USER', 'ROLE_ADMIN'))
);
insert into spring5_member (memberid, memberpw, membername, email, phone, address)
values ('aaa', '123', '홍길동', 'aaa@aaa.com', '010-1111-1111', '서울시 강남구 삼성동');
-- 게시글
-- 게시글 번호 시퀀스
-- 리플
-- 리플 번호 시퀀스
Oracle SQL Developer 에서 테이블 설계 후 실행
hr계정 refresh 해서 테이블 구조 및 데이터 잘 들어왔는지 체크
새로운 SQL 워크시트 생성 단축키 :
ALT + F10
application.properties 설계
-> 메모장파일로 항상 저장해두고 copy해 온뒤,
port number, path, typwe-alias, mapper위치에 맞게 수정하기
# http://localhost:10288/springA
#접속 포트번호
server.port=10288
#Context Path
server.servlet.context-path=/springA
#Logback 사용. 전체를 대상으로 로깅 레벨 지정
#error>warn>info>debug>trace
logging.level.root=info
#특정 패키지를 대상으로 로깅 레벨 지정
logging.level.net.softsociety.springA=debug
# 오라클 연결 설정
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xe
spring.datasource.username=hr
spring.datasource.password=hr
# MyBatis type-alias 지정 패키지
mybatis.type-aliases-package=net.softsociety.springA.domain
# Mybatis mapper 위치 설정
mybatis.mapper-locations=mappers/**/*.xml
controller, service, dao, domain, util, security 설게
HomeController.java 설계Q. HomeController 역할
스프링 프레임워크는 MVC패턴을 사용하고 있고,
여기서 Controller는 화면(View)과 비즈니스 로직(Model)를 연결시키는 다리 역할을 한다.HomeController 설계 체크사항
@Controller 어노테이션 GetMapping 어노테이션 포워딩 위치 확인 & 포워딩 도착지 설계
package net.softsociety.springA.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@GetMapping({"/", ""})
public String home() {
return "home";
}
}
home.html 설계
src/main/resuorces -> templates -> home.html 생성
서버가 연결되는지 확인할 정도로만 간단히 꾸미기
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>springA</title>
</head>
<body>
<h1>[ 🐰🐭🐼 springA 🐼🐭🐰 ]</h1>
<p><a href="">회원가입</a></p>
<p><a href="">로그인</a></p>
<p><a href="">로그아웃</a></p>
<p><a href="">개인정보수정</a></p>
<p><a href="">게시판</a></p>
</body>
</html>
springA 서버 켜기
오류 발생
- Using generated security password: ****
이번 프로젝트에서 최종 설계 목표가 util기능과 security 기능을 사용해 보는것이었음
거기서 build.gradle 에서 Dependency 를 확인해보면
Lombok
MyBatis Framework
ORacle Driver
Spring Boot Devtools
Spring Security
Spring Web
Thymeleaf
의 Dependency가 모두 활성화 되어 있음
여기서 현재 서버가 구동되는 것을 확인하기 위한 Dependency만 켜고 나머지는 일단 주석처리
그래도 Using generated security password: 콘솔이 없어지지 않는다 해결방법 더 찾아봐야 할 것 같다...
일단 해결 못한채로 콘솔에서 알려주는 비밀번호로 접속하기
서버 구동 확인 완료