-
Framework란(뼈대,구조)
어떤 어플리케이션을 만들기 위해서
이미 제작되어 사용할 수 있는 도구모음
웹어플리케이션은 Front(Html,CSS,JavaScript) 와 Back(database,java)을
웹프레임워크(spring,django)등을 이용해 만든다
목표
스프링 부트를 이용한 회원제 게시판 만들기
java
java oop
oracle
mybatis
Html, CSS
JavaScript +JQuery
디자인 패턴
-싱글톤 패턴 - 인스턴스 하나만 할당해서
그 인스턴스만 계속 반복하는것
-mvc(ModelViesController) 패턴
M=정보를 담고있는 객체(VO,DTO)
V =사용자에게 보이는 부분
C = 클->서, 서->클
자료란?
확장자가Jar인파일 ARchive 자바 소스코드의 모음
jdbc(Java DataBase Connectivity) =
자바에서 데이터베이스에 접속 / 관리 할 수 있게 해주는
드라이버(API)
OJDBC = 오라클기반
Gradle-Grooby(빌드 도구)
컴파일과 호출이 정상적으로 되야 실행이 된다.
이런 빌드를 도와주는 도구
: 프로그램 빌드, 외부 라이브러리를 import 해줌
grooby 는 JVM에서 실행되는 스크립트 언어로
java와 유사한 문법 구조를 가지며
java와 호환성이 아주 좋다.
패키지: 공통점을 가진 소스코드들을 묶어놓은 폴더
디펜던시(의존성) : 파라미터나 리턴값 또는 지역변수 등으로 다른 객체를 참조하는 것
의존성은 위험하므로 의존성은 최소화되어야 한다. 왜냐하면 한 객체가 다른 객체에 의존한다는 것은 다른 객체가 변할 때 변경이 전파될 수 있다는 것을 의미하기 때문인데, 이를 의존성 전이라고 한다.
spring web
spring boot devtools
thymeleaf
설정
SpringBootProject의 구조
src-main-java(JAVA Application 소스코드)
-resources(html파일,js파일,css,각종설정-app,mybatis)
-MainController생성
resources 폴더:
- templates : 어플리케이션의 결과 등을 표시할.html 파일들이 들어감(값이 변함)
-index.html,display.html(파일 생성)
- staitc : js,css,각종 이미지 또는 리소스들(로딩 후 변하지 않는 것)
- application.properties : 스프링부트 어플리케이션의 설정파일(서버포트 지정)
properties에는 띄어쓰기 없이 적는다
@(annotation,어노테이션) : 프레임워크 내부에서 해당 클래스 또는 메서드 등의 역할을 정의
크롬 접속 후 주소창에 localhost.8888/ 입력
@GetMapping("/") 다시 설명 듣기
HTTP의 전송방식 (get, post)
get - 주소에 데이터를 담아서 서버에 보냄
post - http요청에 data 담아서 서버에 보냄 (보안높고, 데이터도 많이저장)
get 방식 :
localhost:8888/?name=abc&age=20
주소뒤에 ?key=value형식으로 된 문자열 : QueryString
쿼리 스트링에 들어가는 key 의 이름은 실행할 때 메서드의 파라미터 이름과 일치해야 한다.
스프링 프레임워크가 20을 숫자형으로 형변환을 해준다.
모델 객체 : 클라이언트에 표시할 데이터들을 키와 값으로 저장하는 것
xmlns:th = "http://www.thymeleaf.org"
th =prefix
rawdata
raw : a.날것의
구조 - controller에서 생성자를 만들고 model을 만든다.
@GetMapping("/html파일")로 어노테이션 지정 후
new 생성자(Model model) ,생성자의 이름은 html과 같게 만들고
model.addAttribute("", )를 통해 모델에 추가한다.
-html파일에서 th:text를 통해 모델에 추가한 데이터를 받아온다
th:text = "${MainController에서 모델에 넣은 값}"
th:each 반복문
-리스트를 만들고 반복할때
th:if
th:unless
삼항연산자
자바 컬렉션 프레임워크 list, set, map
list = index로 데이터 관리(0,1,2,3,)
map : key =unique 번지수 상관없음
set : 순서 없음자바를 사용한 이클립스에서는 쓸일이 오버라이드 외에는 거의없던 @(어노테이션)이 sts에서는 많이 쓰임!
lombok - vo클래스 빈클래스를 생성할 때 필요한 필드를 이용하는 구성요소
--생성자 단축키--
@data
@no
@allarg
@getter
@setter
클라이언트(프론트) - 서버(백) 연결 STS
@controller = 주소 해석
@service = 자료 가공
@Repository = DB sql호출 위해 필요(DAO)
@Mapper = 마이바티스/자바의 인터페이스(mapper.xml호출)
@Service
@Autowired
개발자가 new로 객체를 만들지 않아도 스프링 컨테이너가 자동으로 객체 생성해줌스프링 흐름도
1. 친구 목록 보기 링크 클릭
2/ a href = '/showFriendList' 주소로 이동
MainController에 이어져 있음
3. 해당 주소에 바인딩(연결,매핑) 된 메서드 실행
4. 컨트롤러의 메서드 -> 서비스 호출
5. 서비스의 호출된 메서드 -> DAO를 호출
6. DAO에 있는 메서드 이름 = Mapper안 SQL의 id(오타 주의)
7. 매퍼에 있는query실행 -> DB가 결과를 반환
반환된 결과 DAO -> Service -> Controller->Client순서대로 돌아감
주의해야할 이름짓기
1) a href /form action에서 호출하는 주소 = 컨트롤러의 매핑된 주소
2) DAO에 있는 메서드 이름 과 Mapper의 쿼리 id는 같아야함
3) 클라이언트 form name 속성 =1)에서 호출한 메서드의 파라미터
친구 한명 정보 찾기
1) 친구 정보 목록 보기 화면에서 친구 이름에 링크 달기
2) 친구 이름을 주소와 함께 서버로 전송
3) 친구 이름을 서비스로 전달 ->DAO로 전달 (서비스에서 다오 설정해놔서 알아서 해줌)
4) 컨트롤러에 반환된 Friend객체를 모델에 담기
5) friendInfo.html에 Friend 객체의 정보 표시'웹 개발 > 스프링' 카테고리의 다른 글
좋은 객체지향 프로그래밍(Object Oriented Programming)이란 (0) 2024.10.20 스프링의 역사 (0) 2024.10.07 VO, DTO, ENTITY? (0) 2023.06.19 스프링 (0) 2023.06.01 ajax (0) 2023.04.04