더보기
  세션 수강여부 기한
1강 스프링 개요 O -
2강 개발 환경 구축 O -
3강 스프링 프로젝트 생성 O -
4강 처음해 보는 스프링 프로젝트 O -
5강 또 다른 프로젝트 생성 방법 O -
6강 DI(Dependency injection) O -
7강 다양한 의존 객체 주입 O -
8강 스프링 설정 파일 분리 O 12/23
9강 의존 객체 자동 주입 O 12/23
10강 의존객체 선택 O 12/24
11강 생명주기 Life Cycle O 12/24
12강 어노테이션을 이용한 스프링 설정 -1 O 12/27
13강 어노테이션을 이용한 스프링 설정 -2 O 12/27
14강 ***웹 프로그래밍 설계 모델*** O 12/28
15강 스프링 MVC 웹서비스 O 12/28
16강 STS를 이용하지 않은 웹 프로젝트 O 12/29
17강 Service & Dao 객체 구현 O 12/29
18강 Controller 객체 구현 O 12/30
19강 Controller 객체 구현 O 12/30
20강 세션, 쿠키 O 12/31
21강 리다이렉트, 인터셉트 O 12/31
22강 Database O 1/2
23강 JDBC O 1/2
24강 JdbcTemplate O 1/3
25강 커넥션풀   1/3

1-1 스프링 프레임워크

스프링 프레임워크의 주요기능은 DI, AOP, MVC, JDBC 등을 제공한다.

1-2 스프링 프레임워크 모듈

스프링 모듈 기능
spring-core 스프링의 핵심인 DI(Depnedency Injection)와 IoC(Inversion of Control)를 제공한다.
spring-aop AOP구현 기능 제공
spring-jdbc 데이터베이스를 쉽게(적은 양의 코드)다룰 수 있는 기능 제공
spring-tx 스프링에서 제공하는 트랜잭션 관련 기능 제공
spring-webmvc 스프링에서 제공하는 컨트롤러(Controller)와 뷰(view)를 이용한 스프링MVC 구현 기능 제공

스프링 프레임워크에서 제공하는 모듈을 사용하려면, 모듈에 대한 의존설정을 개발 프로젝트에 XML 파일등을 이용해 개발자가 직접 하면된다. 

 

1-3 스프링 컨테이너(IoC)

스프링에서 객체를 생성하고 조립하는 컨테이너(container)로, 컨테이너를 통해 생선된 객체를 빈(Bean)이라고 부른다.

1) 객체생성 및 속성 데이터 작성

2) 스프링 컨테이너에서 객체 생성 및 조립

3) 애플리케이션 구현

필요할 때마다 스프링컨테이너에서 기능을 빼서 쓰는 개념이다.sprin 


(2강 개발환경설정)

3-1 프로젝트 생성

groupId와 artifactId

groupId 큰 프로젝트 단위 지하철(1~9호선)
artifactId 세부 프로젝트 단위 1호선, 2호선, 3호선...

3-2 pom.xml 작성

pom.xml

필요한 모듈을 가져오는 기능

3-3 폴더 및 pom.xml 파일의 이해(기본 폴더 디렉토리)

  • src/main
    • src/main/java
      • 특별한 것은 없고, 앞으로 만들어지는 자바 파일들이 관리되는 곳이다. 
    • src/main/resource
      • 자원을 관리하는 폴더로 스프링 설정파일(XML) 또는 프로퍼티 파일 등이 관리된다.
  • src/test

4-1 처음해보는 스프링 프로젝트

java 객체생성 및 Bean 생성

기존 java 객체 생성

//기존 자바 객체생성 (main)
TranspotationWalk transpotationWalk = new TranspotationWalk();
transpotationWalk.move();

//TranspotationWalk
public void move(){
        System.out.println("도로로 이동 합니다.");
    }

Spring Bean이용 IoC생성

//XML Bean 추가
<bean id="tWalk" class ="testPjt.TranspotationWalk"/>

//main
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationContext.xml");
TranspotationWalk transpotationWalk = ctx.getBean("tWalk",TranspotationWalk.class);
transpotationWalk.move();

ctx.close();

6-1 DI(Dependency Injection) 의존성 주입

배터리 일체형 : 의존성 없음 / 배터리가 떨어지면 새로 구입해야한다.(비효율)

public class ElectronicCarToy{
	private Battery battery;
    public ElectoincCarToy(){
    	battery=new NormalBattery();//객체 생성될때 new해준다.
    }
}

배터리 분리형1 : 초기에는 배터리X, 사용자가 넣어줘야함(의존성 주입)

public class ElectronicCarToy{
	private Battery battery;
    public ElectoincCarToy(){
    	
    }
    //setter
    public void setBattery(Battery battery){
    	this.battery = battert;
    }
}

배터리 분리형2 : 초기에 배터리O, 사용자가 배터리 교체(의존성 주입)

public class ElectronicCarToy{
	private Battery battery;
    //생성자
    public ElectoincCarToy(){
    	this.batter=battery;
    }
    //setter
    public void setBattery(Battery battery){
    	this.battery = battert;
    }
}

같은 DB 사용하기(DAO 의존성 주입)

public StudentAssbler(){
	studentDAO = new StudentDAO(); //DAO 생성=DB
    registerService = new registerService(studentDAO);
    modifyService = new ModifyService(studentDAO);
    deleteService = new DeleteService(studentDAO);
    selectService = new SelectService(studentDAO);
    allSelectService = new AllSelectService(studentDAO);
 }

studentDAO를 각각의 객체에 주입함으로써 같은 DB를 공유한다. 만약 각각의 객체에서 studentDAO를 생성했다면 각각 다른 DB를 사용하는 것이다.

상기 코드를 Spring ApplicationContext화 하겠다. IoC(제어의 역전) 사용하기

//applcationContext.xml

//studentDao Bean 생성
<bean id ="studentDao" class="ems.member.dao.StudentDao"> </bean>

//의존성 주입
<bean id ="registerService" class="ems.member.service.StudentRegisterService">
	<constructor-arg ref="studentDao"> </constructor-arg>
</bean>
.
.
.

7강 다양한 의존 객체 주입

스프링의 의존 객체를 주입하는 다양한 방법

  java spring 비고
7-1 생성자를 이용한 의존 객체 주입
1) 네이밍이 중요하다 첫 글자는 무조건 소문자이다.
7-2 setter를 이용한 의존 객체 주입
1) 첫 글자는 소문자
2) setter의 set을 제외시킨다.
3) 보통 db연동에서 많이 쓰인다.(초기화)
7-3 List타입 의존 객체 주입
객체를 리스트로 받는 경우도 있다. 그런 경우 사용한다.
7-4 Map타입 객체 주입
객체를 map(key,value)형식으로 받는 경우도 있다. 그런 경우 사용한다.

 


 

'Spring > [인프런] Spring FrameWork' 카테고리의 다른 글

어노테이션을 이용한 스프링 설정 -1  (0) 2021.12.27
생명주기(Life Cycle)  (0) 2021.12.24
의존객체 선택  (0) 2021.12.24
의존객체 자동 주입  (0) 2021.12.23
스프링 설정 파일 분리  (0) 2021.12.23

+ Recent posts