SpringTotalProject (1)
스프링
DI (주입 -> 필요한 데이터 주입 -> 메모리 할당(생성 -> 메모리에 저장)
DI
1. setterDi -> setXxx( ) -> DB 연결, 네트워크...
-> <bean id="aaa" class=" "
p : username= " "
p : url = " "
p : driverClassName = " "
2. 생성자 DI -> 생성자의 매개변수 이용해서 주입
< bean id="bbb"
class = " "
c : ip = " "
c : db = " "
table = " "
/> 변수의 값을 넣을것인가 매개변수의 값을 넣을것인가
3. 스프링에 등록된 객체주소 주입
---------------------------------------- @Autowired , @Resource
class A -> new A ( )
class B
{
@Autowired
A a;
}
----------->> 동작
set 매서드에 값을 넣으면 p:
XML 을 올렸을시 작성 순서
1. XML 을 읽어서 등록된 클래스를 메모리 할당 (맵으로 저장을 한다 가장많이 사용하는 map : hashmap) 한 후
key 주소 = a new A( )
A a = new A( );
A b = a ;
2. 필요한 값이 있으면 대입 없으면 대입 안함
(setXxx( ),생성자)
3. method -> 생성시에 한번 -> init - method
소멸시 에 한번 -> destory-method
4. 프로그래머가 활용 ( 순서에 맞게 매소드 호출 사용 )
프로그래머는 순서에 맞게 매서드 호출 해서 사용한다
필요한 위치에서 호출 한다 !
5. 소멸 ( 메모리 해제 )
스프링은 = 클래스 관리자 ( 내가 등록한 클래스만 관리 한ㄷr )
[목적]
* 결합성이 낮은 프로그램을 구현한다.
* 유지보수가 편리함 .
* 클래스가 독립적으로 수행 -> POJO
class A
class B
class C
1. 스프링 => 라이브러리를 로딩 (XML 을 POM.XML 로 시작함)
메이븐 (라이브러리 관리, 프로젝트 관리, 배포 관리)
2. 클래스를 제작 -> 스프링에 등록( 관리 ) -----> XML ( application-context.xml )
3. 필요한 클래스를 연결 시켜줌 (주입) -----> Annotation [ @Autowired , @Resource ]
1. DL 등록된 클래스 찾기 (getBean ( ) = 웹에서는 자동 처리 )
DI 필요한 데이터 수집
[ 깃허브 OnLineSpringTotlaProject 에서 복붙하기 ]
매소드의 위치
JoinPoint
Before : 매소드 시작전
After : 무조건 호출 ( finally )
Around : 코딩 위 아래
After - Throwing : catch 수행
= 에러를 처리
After - Returning : 정상수행
= 리턴값을 받아서 처리
PointCut + JoinPoint = Advice ( 두개를 합쳐서 경고하겠다 )
Advice 가 여러개 -> Aspect
적용되는 포인트가 pointcut
MVC
[Controller] // 손님 ----> [View] // 서빙(DispatcherServlet : 배달한다 .do) ---> [Model] // 주방
<--- <---
.do 가 들어가면 요청하는 것임.
[ Model ]
1. 기능 ( 메뉴 ) ---> @RequestMapping( 어떤 메뉴를 갖고갈지 정해야함 )
기능이 많아지면 느려져서 두개로 나눠짐
@GetMapping
@PostMapping
1-1 재료 : getParameter ( 사용자가 보내주는 것을 받음 )
1-2 가공 : DAO 데이터베이스에서 갑을 받아서
1-3 그릇 : 값을 보내줌 request.setAttribute( )
model.addAttribute( )
1-4 상차림 : 탁자 - JSP
차림 -> HTML , JSTL
사용자 정보를 저장 (코로나 때문에 손님들 QR코드, 수기 로 저장함 ) -> Session
2. DAO
JDBC
ORM ( Mybatis , hibernate,[신용평가] , JPA
13 장 까지 해주심
15 장 중요함