Spring의 시작

Spring을 사용하기 위해 Maven Build가 필요함

 

Maven 

  • 자바 개발의 사실상 표준 빌드 툴 (이전에는 ANT를 많이 사용함)
  • XML 설정파일을 사용
    • groovy라는 언어로 설정하는 gradle이 등장

Maven 특징

Convention over Configuration(CoC)

기존의 모든 개발전에는 초기 설정을 중요하게 생각했는데 (=config) 그 설정을 미리(=모범사례) 초기 설정을 지정해준다. (=표준(Convention))

cf) Node.js의 웹 프레임워크 Express Configuration over Convention

 

Java 기반 Web Application 의 Best Practice를 따름

  • 개발 디렉토리구조
  • 빌드 단계

의존성 관리를 자동으로 수행

Maven 중앙 저장소 (Central Repository)를 제공하여 자바 라이브러리에 대한 생태계를 조성

의존성
라이브러리의 수가 엄청 많아진다. 라이브러리도 버전이 올라가면서 라이브러리끼리 충돌이 올라간다. 그런 것을 자동으로 관리해준다. (의존성=의존성 관리) 라이브러리를 하나의 중앙 저장소에 관리를 해준다. 즉 하나의 생태계를 구성한다.

POM.XML.. 메이븐의 메인 설정파일

프로젝트 루트에 위치

메이븐 프로젝트를 의미, IDE에서 불러오기가 쉬움

 

메이븐 프로젝트 설정 시 필수사항

프로젝트 명

artifact ID로 사용

보통 프로젝트명이랑 같은 이름을 사용한다.

그룹 아이디

  • 주로 프로젝트 생성 조직이나 기관의 도메인 명 역순으로 표기. ex) kr.co.company
  • Top-level package 명으로 사용됨

버전

  • 개발버전을 의미하는 SNAPSHOT 버전 사용
  • cf) 배포버전.. RELEASE 버전

Maven 3 버전 사용

  • 로컬에 설치 필요
  • IDE에 포함된 경우에는 별도 설치 필요업음
  • STS 3.8x, IntelliJ IDEA 2017 버전 이상 모두 메이븐 3.X 버전 포함되어 있음
  • maven.apach.org

 

STS로 스프링 프로젝트 생성

  • Dynamic Web Project 생성
  • Dynamic web Module version .. 3.1로 설정
  • Apache Tomcat 8.0 설치 후 설정

goni9071.tistory.com/456

 

window 10 + Spring Tools 4 for Eclipse :: STS 4 설치 ( 2020.01.13)

Spring Tools 4 설치 입니다. Version : 4.5.0.RELEASE Build id : 201912171052 STS 다운받으면 원래 zip 파일이었는데 이번에 다운 받을 땐 jar 파일이어서 당황했습니다. 덕분에 공유합니다. 다운로드 URL : h..

goni9071.tistory.com

  • Dynamic Web Project 생성

  • 기존 경로 삭제 이후 다음과 같이 입력

  • 경로 재설정 및 Descriptor check

 

  • Maven으로 변경 [프로젝트] -> [configure] -> [CovertToMaven]
    • pom.xml 생성 됨

 

 

 

 

 

 

Maven Repository: org.springframework » spring-context » 5.2.12.RELEASE

org.springframework spring-context 5.2.12.RELEASE // https://mvnrepository.com/artifact/org.springframework/spring-context compile group: 'org.springframework', name: 'spring-context', version: '5.2.12.RELEASE' // https://mvnrepository.com/artifact/org.spr

mvnrepository.com

  • Maven 으로 갱신하기 [프로젝트] -> [Maven] ->[upadate Project]
  • [RunAs] -> RunServer 구동

  • 초기화면이 없으므로 404 에러 

스프링 프레임워크란 ?

Java 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임 워크 

 

애플리케이션 프레임워크

특정 계층이나 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크를 말한다.

경량급 프레임워크

단순한 웹 컨테이너에서도 엔터프라이즈 개발의 고급기술을 대부분 사용할 수 있음.

엔터프라이즈 개발 용이

개발자가 복잡하고 실수하기 쉬운 Low Level에 많이 신경 쓰지않으면서 Business Logic 개발에 전념할 수 있게 해준다.

오픈소스

spring은 OpenSource의 장점을 충분히 취하면서 동시에 OpenSource제품의 단점과 한계를 잘 극복함

 

Spring Framework 특징

컨테이너의 역할

Spring 컨테이너는 java객체의 Life Cycle을 관리하며, Spring 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.

 

DI(Dependency Injection) 지원 

Spring은 설정 파일이나 어노테이션을 통해서 객체 간의 의존관계를 설정할 수 있도록 하고 있다.

 

AOP(Aspect Oriented Programming) 지원

Spring은 트랜잭션이나 로깅, 보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈에서 분리해서 적용할 수 있다.

 

POJO(Plain Old Java Object)지원

Spring 컨테이너에 저장되는 Java객체는 특정한 인터페이스르 구현하거나, 특정 클래스를 상속받지 않아도 된다.

 

트랜잭션  처리를 위한 일관된 방법을 지원

JDBC, JTA 등 어떤 트랜잭션을 사용하던 설정을 통해 정보를 관리하므로 트랜잭션 구현에 상관없이 동일한 코드르 사용 가능.

 

영속성(Persistence)과 관련된 다양한 API 지원

Spring은 MyBatis, Hibernate 등 데이터베이스 처

리를 위한 ORM(Object Relational Mapping) 프레임워크들과의 연동 지원

 

스프링의 주요 모듈 목록

Data Access/Integration

  • JDBC
  • ORM
  • OXM
  • JMS
  • Transactions

Web

  • Web Socket
  • Servlet
  • Web
  • Portlet

Core Container

하부를 지탱하는 주요한 객체(=Bean)를 관리해줌

  • Beans
  • Core
  • Context
  • SpEL

스프링 지원 IDE

  • STS (Spring Tool Suite)
  • IntelliJ IDEA, by JetBrains
    • 더욱 주목 받고 있음.(대기업 개발자들이 많이 쓴다.)
Spring을 잘 한다는 것은 Tool을 얼마나 잘 쓰는냐도 중요하다. (기능이 많기 때문)

 

+ Recent posts