●오늘 수업내용
1.인텔리제이 - 프로젝트 생성
> 어플리케이션 실행 및 db오류잡기 > spring.application에서 입력
2.스프링프레임워크 문서보기
스프링 > 스프링부트
프로그램다짜고 라이브러리형태로 제공
3.인텔리제이 springtest생성
작업
4.인텔리제이 springtest 프로젝트
작업
5.인텔리제이 springtest 프로젝트
오류수정
6.인텔리제이 springtest 프로젝트
부트스트랩
7.인텔리제이 springtest 프로젝트
부트스트랩-사용해서 게시판생성
8.인텔리제이 springtest 프로젝트
다시만들어보기
https://getbootstrap.kr/docs/5.3/getting-started/introduction/
#1.인텔리제이 생성
롬복셋팅 : 저거 체크해야지, 어노테이션으로 쓰는 롬복이 잘 사용됩니다.
컨트롤러가 application.properties를 가장 먼저 찾습니다.
오류해결법
spring.application.name=springtest
#MySQL Driver Setting
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/boarddb?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=my1234
해결화면
# Spring Framework
자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로
줄여서 `스프링` 이라고 부릅니다.
애플리케이션 프레임워크
(개발하는 전체과정을 빠르고 효율적으로 진행해보자 라는 목적으로 만든 것입니다.)
- 특정 계층 ,기술,업무분야에 국한되지 않고
애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크
스프링은 오픈소스라서 처리할수있는게 다양합니다.
전자정부프레임워크가 스프링을 기반으로 제작이 되어있습니다.
(이클립스,스프링)
# Spring Framework 주요 구성요소
.APO(Aspect-Oriented Programming) : 관점 지향 프로그래밍
.IoC/DI :
Ioc(Inversion of control) : 제어의 역전
DI(Dependency Injection) : 의존관계 주입
.PSA (Portable Service Abstracttion) 서비스 추상화
.POJO (Planin Old Java Object) : 단순히 자바 객체를 사용
#.APO(Aspect-Oriented Programming) : 관점 지향 프로그래밍
횡단관심 : 로깅,보완,트랜잭션
핵심관심 : 상품등록,상품조회,결제
횡단관심사를 프레임워크에 넘긴다. > AOP라한다(관점 지향 프로그래밍)
로깅 보완 트랜잭션 외부에서 받아서 쓴다.
뭐만 집중하면된다? 상품등록,상품주의,결제 에 관한거를 짜면된다라는 것
관심사를 분류해서, 횡단관심으로 쓰여지는 것, 공통적으로 쓰여지는 것을 프레임워크에서(시스템에서) 단지 어노테이션 한두개써서 저거에 대한 프로그램을 사용한다.
로그정보같은거
System.out.ln 지금까지 확인 한것
핵심적인것들만, 기록하고 보여주는 것
#Ioc - Inversion of Control(제어의역전)
개발자는 스프링 제공하는 것들만 고쳐서쓴다. 전체적인 흐름은 누가주도하다면, 프레임워크가 주도해나간다. 프레임워크가 제공하는 것들중 필요한 것들만 고쳐서쓴다.
제어권의 주도가 프레임워크한테 있다. 개발자는 단지 프레임워크에 명령만 주입,
ex) 생성자에다가 주입, 나머지 그것을 프레임워크가 처리한다.
프로그램주도 > 프레임워크가 주도해나간다.
ex)
예전에는 XML방식으로
요즘에는 어노테이션방식이라..
xml이 ioc를 많이사용한다.
#DI(의존관계 주입)
객체간에 관계가
내부가아니라 외부로부터 넘겨받는다.
외부설정파일로 그것을 처리한다.
컴파일시점에서 의존관계가 아니라, 실행할 당시에, 모듈간에 결합이 생겨서 의존관계가
모듈간의 결합도 낮다.
외부로 부터 받으니, 코드재사용가능
ex) setter,생성자 - 외부로부터 값을 넘겨받는 DI
객체를 생성하는 시점에 자료를 받아서 처리하는 것
#PSA (Portable Service Abstracttion) 서비스 추상화
추상 : 부모는 공통적인것을 가지고있고 자식들은
부모는 자식이 무슨역할하는지 모른다.
추상화는 어려운용어로 쓰면 하위시스템의 공통점을 뽑아내서 분리시킨것.
자식들이 공통점으로 실행되는 것을 뽑아서, 부모에다가 집어 넣고 자식들이
부모의 것을 상속받아, 개발한다.
ex)
부모는 공통점만 주어서, 추상화시킨다.
-인터페이스 + 추상메소드
-앱스트랙트
>>> 자식이 바뀌어도, 부모에게 아무런 영향이 안미친다.
>>> 부모가 바뀌면, 모든 영향이 미친다.
#POJO (Planin Old Java Object) : 단순히 자바 객체를 사용
스프링에서 들어가는 부분
디스팻처 서블릿은 > 핸들러매핑으로 넘긴다.
핸들러매핑은 키와 밸류를 맵형태로 가지고있는다.
키와 밸류로 가지고있따가 클라이언트가 요청하면 디스팻처 서블릿은 핸들러맵핑한테 보내고, 핸들러맵핑은 키하고 밸류를 이쪽으로 넘겨주는게 좋다라는 것이 정리되어있다.
핸들러맵핑은 디스팻처한테 컨트롤러에관한응답해준다.
디스팻처는 맵핑한테 받은 컨트롤러에 대한 것을 요구한다.
컨트롤러는 DB로 처리한다.
컨트롤러는 ModelAndView로 디스펫처로 넘긴다.
디스팻처는 뷰리설브한테 보내지고
뷰는 이름에 대한 것을 처리
뷰는 디스팻처 서블릿한테 뷰이름을 보내준다.
디스팻처서블렛은 뷰한테 모델을 보내준다.
뷰는 처리한다.
뷰는 응답한다.
ㅡㅡㅡ
<html lang="ko" xmlns:th="http://www.thymeleaf.org">추가
겟맵핑 방식
맵핑
-GET
-POST
RequestMapping - Get과 POST
#문제가생길때
1.인텔리제이자체 리셋
2.m2파일 지우기
'6.spring' 카테고리의 다른 글
spring_개념_Day_04 (0) | 2024.03.14 |
---|---|
spring_개념_Day_03 (0) | 2024.03.14 |
spring_개념_Day_02 (0) | 2024.03.13 |
spring_개념_Day_01 (0) | 2024.03.13 |