[STS4 설치]
Spring | Tools
spring.io
맥북 프로 M4 => MACOS ARM_64 다운!

[lombok]
럼복jar sts에 넣기
넣는 방법 : 응용프로그램에서 STS찾아서 우클릭 > 패키지내용보기 > Contents > Eclipse 폴더 안에 lombok.jar 넣기

그리고 경로복사
이렇게 경로 복사해서 터미널에서
> cd 방금복사한거붙여넣기
cd STS-4폴더
> java -jar lombok.jar


Specify location... 눌러서 방금 경로 찾아서 ini파일을 open하면 설치 완료
사진 잘못됨 히힛~
[MyBatis]
마켓플레이스>마이바티스제너레이터 셀렉트올 깔기
마켓플레이스>마이바팁스 셀렉트올 깔기
[인스톨뉴소프트웨어]
인스톨뉴소프트웨어
세모누르기
Spring Tool Suite 4 - https://cdn.spring.io/spring-tools/release/TOOLS/sts4/update/latest
이거깔면 다작살남 이거 ㄴㄴ
Latest Eclipse Release - https://download.eclipse.org/releases/latest
이거깔기
콘택트 업데이트 풀기!!!!!!!주의
- 체크풀어야할거 (나는 Mysql, Oracle, Postgre 사용)
Apache Derby
HSQLDB
IBM
Ingres
Microsft => mssql 쓰면 깔기
SAP MaxDB
Sqlite
Sybase
ModelBase
OpenDataAccess 3개 다 체크풀기
DTP Tutorial
DTP User


또
인스톨뉴소프트웨어 똑같은거 선택
쭉내려서 와일드웹만 체크 > 컨택트체크해제!@!!! > 설치

근데 설치돼있어서 안깔림 설치돼있으니까 모 굳이 안깔아도됨~
인스톨 뉴 소프트웨어 똑같은거
프로그래밍 랭귀지

네개 선택, 컨택트 체크해제 깔기
머 깔려있는거도있는데 그럼된거지 모 삐니쉬
[IDE 세팅]
프리퍼런스
enc > 텍스트 > 자바프로퍼티스파일
워크스페이스, XML도 UTF-8 얘네는 맥은 기본이라 갠춘
자동업데이트 체크해제

자바 컴파일러 17

Add > standard vm => 자바 17 추가해서 적용하기
맥북 프로 M4 사용하는데 Zulu로 다운하는게 좋다 그래서 홈페이지 가서 dmz파일로 설치하고
터미널에서
> java -version
명령어 써서 잘깔렸는지 확인 //homebrew로 해도 됨
> /usr/libexec/java_home -V
명령어 써서 자바 홈 확인하고 그거 복사해서
아래 Add할때 경로에 넣으면 됨

런디버그 > 콘솔
버퍼 백만

[메이븐 프로젝트 생성]
1. 세팅이 어려워지는 방법
크리에이트 체크

넥스트

삐니쉬
근데이거로하면 이것저것 다세팅해야됨
그리고 스프링할때 다 했음
지우고 아래 프로젝트방법으로 생성
2. 세팅이 쉬워지는 방법
File > new > spring starter project
(Spring이라고 써있지만 사실 Spring-boot임 속지마)

넥스트
체크하는거 얘가 알아서 pom.xml에 추가해줌 미~친 개좋앙


스프링세큐리티 보안모르는데 체크하면 개고생함 지금 체크 x 나중에 배우고 하기
타임리프도 설치 나중에
지금은 요렇게만 잡기
넥스트 삐니쉬
프로젝트 프로퍼티스
자바 빌드패스
미싱있는거는 환경설정 안돼서 그런거임
[application.properties 세팅]

이녀석 세팅하기
web.xml의 역할
아파치를 안쓰기 때문 vm쓰니깐
spring.application.name=kr.co.koo
#Server
server.port=8081
server.servlet.encoding.force-response=true
server.servlet.encoding.charset=utf-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
#코드 수정시 자동으로 재실행
spring.devtools.restart.enabled=true
#Session 기본 세션유지시간인 30분을 다른 시간으로 세팅
#1 = 1초 / 1800 = 30분
spring.session.timeout=600
server.servlet.session.timeout=600
#file I/O
#파일 첨부 기능을 사용
spring.servlet.multipart.enabled=true
#파일 한개의 최대 사이즈
spring.servlet.multipart.max-file-size=100MB
#파일 여러개의 합계 사이즈
spring.servlet.multipart.max-request-size=1000MB
#View
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
마켓플레이스


이거 깔기 그대로 해서 컨펌 삐니쉬
jsp파일 홈페이지 접속하면 다운됨
pom.xml
jsp검색 jstl 검색 => 읎따!!!!
Maven레포지토리 가기..
부트가 다해주지는 않는다
아아 신창섭 그는 도대체
[스프링 스타터 확인]
프로젝트 우클릭 > 스프링 > add 스타터
위에 보이는게 깔려있는거고 아래에서 더 추가 가능하다

스프링부트의기본은 타임리프
jsp를 못쓰게 한다 여기에 없음 => 메이븐 ㄱㄱ
서블릿 jsp
스프링 jstl
스프링부트 타임리프
??맞나 암튼
자바엑스는 아파치로 돌릴때 쓰는거
부트의 서버는 대시보드로 돌아감 자카르타
jakarta : PC, Mobile 표준 플랫폼으로 자리잡음 // 옛날에는 javax가 표준이었음
자바 17부터 사용 가능
[추가 pom.xml 세팅]
https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api/6.1.0
pom.xml 에 추가하고 버전은 빼기 => 부트부터는 버전을 뺀다 지가 알아서 지버전에 맞춰서 알아서 깖
https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api/3.0.2
이거도 추가하고 버전 빼기
https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl/3.0.1
이거도 추가하고 버전 빼기
https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper/11.0.6
이거도 추가하고 버전 빼기
<!-- 추가 개발 라이브러리 -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<!-- 버전 빼기 <version>6.1.0</version> -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
</dependency>
다 추가하고
프로젝트 우클릭 > 메이븐 > 업데이트
원래는 타임리프써야됨 !!!!!! jsp, jstl 안쓰는데 일단....
[fileIO]
https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.5
외부서버(도메인이있는 서버) 에 FTP를 이용하여 파일 전송
https://mvnrepository.com/artifact/commons-net/commons-net/3.8.0
okhttp : Controller에서 외부 서버 접속 허용
https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/4.12.0
json
https://mvnrepository.com/artifact/org.json/json/20240303
프로젝트 우클릭 > 스프링 > add스타터


<!-- springboot JDBC API -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mysql -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
프로퍼티스파일
#MySQL
#같은 이름은 쓸 수 없음 앞에 뭐시기- 붙여서 사용 => 다중 데이터베이스 연결
spring.second-datasource.driver-class-name=""
spring.second-datasource.url=""
spring.second-datasource.username=""
spring.second-datasource.password=""
데이터소스익스플로러로 연결하고 정보 여기 쓰면 연결완료~
[데이터베이스 설정]
- STS3 => Oracle => Maven Repository 설치 => settingX 가동 가능
- Web.xml, Webpage.xml
- mybatis => config.xml, mapper.xml, dbconfig.xml
- STS4 => Starter Project => Oracle => Setting 필수 가동
- Web.xml (X) => application.properties => .ini 역할
- mybatis => mapper.xml => 다른애들은 application.properties
얘는 세팅 안하면 디비 못씀
프로젝트 우클릭 > 스프링 > 에드 스타터

+ 사용하는 디비 체크
> 넥스트

> 여기서 주의@@@@!!!!!
위에 Structure Compare 체크해버리면 다 초기화됨 작살남 !!!! 체크하지마
만약 마이바티스가 깔려있을때 이렇게 마이바티스를 추가하는 상황이라면
오른쪽에 빨간색 네모가 뜰건데 그거는 기존거를 지워버린다는 의미 새롭게 써버림 => 위험함 잘보기 주의
초록네모만 있다면 > pom.xml만 체크하고 삐니쉬 //appication.properties 체크하면 작살남 주의
다른색 네모가 있다면 > 초록네모부분을 메모장에 옮기기 > 그다음에 캔슬 누르기! > pom.xml에 메모장거 추가
버전 다른거 쓸거면 지우고 메이븐레포지토리 가서 긁어오고 기존거 지우기
내가 starter로 깔았는지 메이븐으로 가져왔는지 확인하는 방법
artifactId가spring-boot-starter로 시작하면 starter로 깐거
> 프로젝트 우클릭 > 메이븐 > 업데이트 > 포스업데이트
업데이트 한번 해주기
> appication.properties 가서 세팅하기
깔기만 하고 appication.properties 파일 세팅 안하면 안돌아감!
#Mybatis
#패키지명 설정 : 패키지가 추가되면 ,를 이용하여 덧붙임
mybatis.type-aliases-package=kr.co.koo
#mapper 설정
mybatis.mapper-locations=classpath:/mapper/mapper.xml
appication.properties 에 mybatis 설정
> src/main/resources 에 mapper 패키지를 생성
> new > other > MyBatis XML Mapper > mapper.xml 파일 생성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.co.koo.mapper"></mapper>
> src/main/java/프로젝트명 에 mapper.java 인터페이스를 생성 > @Mapper 어노테이션 사용 > namespace 설정
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.co.koo.mapper"></mapper>
메이븐레포지토리 >
오라클 C사용시 그냥 Ojdbc11
G사용시 Ojdbc G 사용
https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11/23.3.0.23.09
jar 다운로드 > 파일 복사 > src/main/webapp 안에 WEB-INF 폴더 생성 > 그안에 lib 폴더 생성 > 거기에 붙여넣기

> Data Source Explorer 라는 Window 열기 > new

> 넥스트 > Thin 11 > jar탭 클릭 > 기본 jar 삭제 후 방금 옮긴 jar 파일 add > DB정보 입력
디비정보입력할때 sql developer에서 설정 잘보고 연결

SID에 포트번호/DB이름으로 써야 잘 적용됨 //커넥션유알엘에 포트가 두번써져있지만 잘됨
> 테스트 커넥션으로 핑석시드 잘뜨는지 보고 삐니쉬
연결된 디비 우클릭 > 프로퍼티스>커넥션유알엘 복사
> appication.properties > Oracle 설정 추가
#Oracle
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=방금복사한url
spring.datasource.username=아이디
spring.datasource.password=비번
> 대시보드 실행 후 페이지 접속시 잘 실행되면 정상 연결 완료
Linux => Apache (WEB)
Spring => WAS (Tomcat 8.5.x) => HTTP
Linux => Nginix (WEB) //아파치보다 배로 빠름
Spring-boot => WAS (Dashboard) => HTTP
아파치쓸수있기는 한데 apj 오류가 많이 발생함
굳이 쓴다면 버전 변경
Spring-boot 2.0 => WAS (Tomcat 9.x) => HTTP
Spring-boot 3.0 => WAS (Tomcat 10.x) => HTTP
회사가서 서버환경 잘보고 세팅하기
[패키지 추가시 주의점]

패키지명 : 기본패키지이름.패키지명
이렇게 써야 작동함!!! 주 의
[Spring => Spring-boot 달라진 점]
대시보드서버가 좋은이유
배포할때 알아서 맞는 세팅을 자기가 조절해줌 그래서 pom에서 버전자체를 설정하지 않음
마이바티스의 config도 사라짐 mapper만 존재
web.xml대신 application.properties 사용 or yml (사수가 쓰는거 따라서)
부트는 두가지 메이븐, 그래들 프로젝트
리소스의 스태틱 폴더는 프론트가 리액트 사용
히히 맥북 새로 사고 뭘 깔려고만 하면 다 버전 안맞아서 안깔리고 온몸비틀기해서 억지로 깔았는데
최신버전이라 잘깔려서 너무 행복해잉 히히히히 기분넘죠타