/Spring

spring

Primary LanguageJava

[TOC]

참고

인프런 자바 스프링 프레임워크

** 예제 코드 사용을 위해서 항상 Maven 으로 import해줘야한다.

** Intellij에서 폴더에서 import하는거 찾아야겠다.

스프링

DI: dependency injection

AOP: 관점 지향 프로그래밍, 공통된 부분을 뽑아서 따로 관리, 주요부분만 코딩

MVC: model view control

JDBC: java database connector

spring-core

spring-aop

spring-jdbc

spring-tx

spring-webmvc

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

환경설정

  1. 스프링 프로젝트 생성

eclipse에서

Maven project 생성

group id - 전체 프로젝트를 감싸는 이름

Artifact id

image-20200318171253936

  1. pom.xml 작성

버전 맞추기

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>testPjt</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.2.RELEASE</version>
        </dependency>

    </dependencies>


    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
  1. applicationContext

  2. DI 설정

프로젝트 구조 Install

Back spring

src/

main/

java/ 자바파일 관리

resources/ 자원을 관리, 스프링 설정 파일

pom.xml 파일이란 메이븐 설정파일로, 메이븐은 라이브러리를 연결해주고, 빌드를 위한 플랫폼이다.


Front vue

npm install -g vue-cli
vue init webpack my-project // CLI 2 버전

** 항상 node 10이상버전 유지로 에러해결

nvm install v10.15.1
// 터미널을 새로 열때마다 버전 6으로 다시 되돌아가는데,
// 이 부분 수정해야한다. Mac이란..
vue create 프로젝트명 // CLI 3 버전
npm run serve // 서버 열기

DI (Dependency Injection)

  • 객체를 모두 독립화 시켜서 유연성 있게 프로그래밍 및 유지보수하는 것이 OOP라고 할 수 있는데,
  • 배터리 일체형, 배터리 분리형: 배터리에 의존해서 배터리를 주입
  • 어떻게 스프링에서 DI하는가? 스프링 컨테이너 안에서 객체가 서로 주입하고 의존하는 관계를 만든다.

다양한 의존 객체 주입

  • constructor-arg에 해당하는 id값을 넣는다.

  • setter를 이용한 의존 객체 주입

  • List타입 의존 객체 주입

  • Map타입 의존 객체 주입

기능별로 xml파일을 구분한다.

####빈(Bean)의 범위

의존객체 자동 주입

의존객체

스프링 설정 파일에서 의존 객체를 주입할 때 또는 태그로 의존 대상 객체를 명시하지 않아도, 스프링 컨테이너가 자동으로 필요한 의존 대상 객체를 찾아서 의존 대상 객체가 필요한 객체에 주입해 주는 기능이다.

의존객체 자동 주입 방법

@Autowired & @Resource 어노테이션용

@Autowired

xml사용없이 주입하려는 객체의 타입이 일치하는 객체를 자동으로 주입한다.

@Resource

Session & Cookie

Conncectionless Protocol

웹서비스는 HTTP 프로토콜을 기반으로 하는데, HTTP 프로토콜은 클라이언트와 서버의 관계를 유지 하지 않는 특징이 있다.

Request - Response

클라이언트 - 서버

서버의 부하를 중일 수 있는 장점은 있나, 클라이언트 요청 시 마다 서버와 매번 새로운 연결이 생성되기 때문에 상태 유지, 장바구니 등의 기능을 구현하기 어렵다. 이러한 Connectionless Protocol의 불편함을 해결하기 위해 *session(서버에서 관리)*과 *cookie(클라이언트에서 관리)*를 이용