MyBatis란?


MyBatis의 개요와 특징

MYbatis와 Mybatis-Spring의 주요 컴포넌트

MyBatis-Spring 예제


MyBatis란?

- 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM 프레임워크이다.

(Object relational Mapping)

- MyBatis는 SQL을 별도의 파일로 분리해서 관리하게 해준다.

- 객체-SQL 사이의 파라미터 Mapping 작업을 자동으로 해주기 때문에 많은 인기를 얻고있다.

- 새로우 DB프로그래밍 패러다임을 익혀야하는 부담없다.

- SQL문 그대로 이용하면서 JDBC 코드작성의 불편함도 제거해준다.

- 도메인 객체나 VO객체를 중심으로 개발이 가능한 장점있다.


MyBatis의 특징


쉬운 접근성과 코드의 간결함

- 가장 간단한 퍼시턴스 프레임워크(ORM)

- XML형태로 서술된 JDBC코드라고 생각해도 될만큼 JDBC의 모든 기능을 MyBatis가 대부분 제공한다.

- 복잡한 JDBC코드를 걷어내며 깔끔한 소스코드를 유지할 수 있다.

- 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구문을 제거할 수 있다.


SQL문과 프로그래밍 코드의 분리

- SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일 하지 않아도 된다.

- SQL작성과 관리 또는 검토를 DBA와 같은 개발자가 아닌 사람에게 맡길 수도 있다.


다양한 프로그래밍언어로 구현가능

- java,C#, .NET등


MyBatis3와 MyBatis-Spring의 주요 컴포넌트

Application     

 O/R

 JDBC

 JDBC

 Persistence

 Modules

 Mapper

 Interfaces

 Implementations

 Layer



JDBC는 저수준의 API

- JDBC를 MyBatis로 맵핑해서 사용(개발자가 사용편리)한다.


Data Access Layer에서 사용(DAO)



MyBatis3의 주요 컴포넌트

Mybatis설정파일(SqlMapCongif.xml)

- 데이터베이스의 접속 주소 정보나 Mapping파일의 경로(SQL포함한파일)등의 고정된 환경정보를 설정한다.

SqlSession Factory Builder(호출)

- 정보를 읽어온다.

- 읽어온 정보로 SqlSession Factory생성한다.

SqlSession Factory

- 읽어온 정보로 SqlSession 생성한다.

SqlSession(핵심역할)

- 컴포넌트 생성 개발자에게 리턴해준다.

- SQL문을 호출해주는 기능,트랜잭션 관리도 실행한다.




Beans.xml에서 설정해야하는 것.

SqlSessionFactoryBean


SqlSessionTemplate


MyBatis-Spring의주요 컴포넌트 역할이다.


Mybatis 설정파일

sqlMapConfig.xml

 - VO객체의 정보를 설정한다.

 SqlSessionFactoryBean

 - MyBatis설정파일을 바탕으로 SqlSessionFactory를 생성한다.

 - SpringBean으로 등록해야함

 SqlSessionTemplate

 - 핵심적인 역할을 하는 클래스로서 SQL실행이나 프랜잭션 관리를 실행한다.

 - SqlSession 인터페이스를 구현하며, Thread-safe하다(멀티스레드환경에서도 안전하게사용가능)

 - Sqpring Bean으로 등록해야한다.


 Mapping파일

 - SQL문과 OR Mapping을 설정한다.

 Spring Bean

 - SqlSessionFactoryBean을 Bean에 등록할 때

  DataSource정보와 MyBatis Config파일정보,Mapping파일의 정보를 함께 설정

 - SqlSessionTemplate을 Bean으로 등록



'개발 소발 > 개발 Spring' 카테고리의 다른 글

Mybatis Mapper 인터페이스란?  (0) 2018.01.11
Mybatis 셋팅이란?  (0) 2017.12.21
AOP어플리케이션 작성 (annotation)이란?  (0) 2017.11.27
AOP어플리케이션 작성 (XML)이란?  (0) 2017.11.24
AOP란?  (0) 2017.11.24

AOP어플리케이션 작성 (annotation)이란?


Aspect 클래스 선언 및 설정

Aspect 클래스 구현의 이해

Aspect 테스트


SpringAOP 구현방식

- XML

- Annotion


annotation 방식

- @Aspect 사용한다.

- XML설정파일에 <aop:aspectj-autoproxy />를 설정한다.


@Aspect 란?

- Aspect 클래스 선언할 때 사용한다.

- AspectJ 5버전에 새롭게 추가된 어노테이션이다.

- @Aspect 어노테이션을 이용할 경우 XML 설정 파일에 어드바이스와

포인트컷을 설정하는 것이 아니라 클래스 내부에 정의할 수 있다.

- <aop:aspectj-autoproxy />태그를 설정파일에 추가해서 사용한다.



xml설정파일에 추가



@Before("pointcut")

- 타겟 객체의 메서드가 실행되기 전에 호출되는 어드바이스이다.

- JoinPoint를 통해 파라미터 정보를 참조한다.


@After("pointcut")

- 타겟 객체의 메서드가 정상 종료됐을 때와 예외가 발생했을 때 모두 호출되는 어드바이스이다.

- 리턴값이나 예외를 직접 전달받을 수는 없다.


@Around("pointcut")

- 타겟 객체의 메서드가 호출되는 전,후 모든 과정을 담을수있는 강력한기능을 가진 어드바이스이다.


@AfterReturning(pointcut="",returning="")

- 타겟 객체의 메서드가 정상적으로 실행을 마친 후에 호출되는 어드바이스이다.

- 리턴값을 참조할 때는 returning 속성에 리턴 값을 저장할 변수 이름을 지정해야한다.


@AfterThrowing(pointcut="",throwing="")

- 타겟 객체의 메서드가 예외가 발생하면 호출되는 어드바이스이다.

- 발생된 예외를 참조할 때는 throwing속성에 발생한 예외를 저장할 변수이름을 지정해야한다.


@Before 어드바이스

- @Before 어드바이스를 이용해서 실행되는 타겟 객체의 메서드명과 파라미터를 출력하는 어드바이스이다.

- 아래의 before 메서드는 myspring 패키지 또는 그 하위 패키지에 있는 모든

public 메서드가 호출되기 이전에 호출된다.

ex)


@AfterReturning 어드바이스(정상적으로 종료되었을때)

- @AfterReturning어드바이스를 이용해서 실행되는 타겟 객체의 메서드명과 리턴값을 출력하는 어드바이스이다.

- 아래의 afterReturning 메서드는 myspring.user.service 패키지 하위에 있는 모든 public 메서드가 정상 종료된 이후에 호출된다.

- 리턴값을 참조할 때는 returning 속성을 이용해서 리턴 값을 담을 변수 이름을 지정해야한다.



@AfterThrowing 어드바이스(예외가 발생하였을때)

- @AfterThrowing 어드바이스를 이용해서 실행되는 타겟 객체의 메서드명과 예외메시지를 출력하는 어드바이스이다.

- 아래의 afterThrowing 메서드는 클래스명이 UserService로 시작되는 클래스에 속한 모든 메서드가 예외가 발생된 이후에 호출된다.

- 발생된 예외를 참조할 때는throwing 속성을 이용해서 예외객체를 담을 변수이름을 지정해야한다.



@After 어드바이스(정상적,예외 둘다 모두 호출)

- @After 어드바이스를 이용해서 실행되는 타겟 객체의 메서드명을 출력하는 어드바이스이다.

- afterFinally 메서드는 메서드명이 User로 끝나는 메서드들이 정상 종료됐을 때와 예외가 발생했을때 모두호출된다.

- 반드시 반환해야 하는 리소스가 있거나 메서드 실행 결과를 항상 로그로 남겨야하는 경우에 사용할 수 있다.

하지만 리턴 값이나 예외를 직접 전달받을 수는 없다.



'개발 소발 > 개발 Spring' 카테고리의 다른 글

Mybatis 셋팅이란?  (0) 2017.12.21
MyBatis란?  (0) 2017.11.27
AOP어플리케이션 작성 (XML)이란?  (0) 2017.11.24
AOP란?  (0) 2017.11.24
jdbc환경설정(mysql)이란?  (0) 2017.11.21

AOP어플리케이션 작성 (XML)이란?


Advice 클래스 작성에 대하여 이해

AOP 설정 및 테스트

PointCut 문법



SpringAOP의 구현방식

xml방식

@Aspect(어노테이션)방식


xml구현방식 절차

- Advice(부가기능)클래스 작성한다.

- xml파일에 <aop:config>를 이용해서 애스펙트를 설정한다.

(aspect애스펙트란? 어드바이스+포인트컷)


Advice의 종류

- Around어드바이스

타겟(핵심로직)메서드가 호출되기 이전(before) 시점과 이후(after) 시점에

모두 처리해야할 필요가 있는 부가기능을 정의한다.

Joinpoint 앞과 뒤에서 실행되는 Advice 이다.

- Before어드바이스

타겟(핵심로직)메서드가 호출되기 이전(before) 시점에 처리해야 할 

필요가 있는 부가기능을 정의한다.

Joinpoint 앞에서 실행되는 Advice 이다.

- After어드바이스

타겟(핵심로직)메서드가 정상적으로 실행된 이후(After)시점에 처리해야 할 

필요가 있는 부가기능을 정의한다.

Joinpoint 메서드호출이 정상적으로 종료된뒤 실행되는Advice 이다.

- AfterThrowing어드바이스

타겟(핵심로직)메서드가 예외를 발생된 이후(after)시점에 처리해야할 필요가 있는 부가기능을 정의한다.

예외가 던져질 때 실행되는 Advice 이다.


Advice클래스의 정보

클래스명 : PerformanceTraceAdvice.java

클래스 기능 : 이 어드바이스는 타겟 객체의 메서드 실행시간을 계산해서 출력해주는 부가기능을 제공한다.

advice유형 : Around 어드바이스

(타겟 객체의 메서드 실행 전, 후의 시간을 측정하여 계산하면 타겟객체의 메서드 실행시간을 알 수 있다.)

구현 메서드명:trace(ProceedingJoinPoint joinPoint)


JoinPoint인터페이스

- JoinPoint는 SpringAOP혹은 AspectJ에서 AOP가 적용되는 지점을 뜻한다.

- 해당지점을 AspectJ에서 JoinPoin라는 인터페이스로 나타낸다.

- JoinPoint에서 제공하는 메소드

 getArgs

 메소드 아큐먼트를 반환(오브젝트배열)

 getThis

 프록시 객체를 반환

 getTarget

 대상 객체를 반환(오브젝트형태)

 getSignature

 어드바이즈되는 메서드의 설명을 반환(메소드명,리턴타입)

 toString

 어드바이즈되는 메서드의 설명을 출력


- 모든 어드바이스는 org.aspectj.lang.JoinPoint 타입의 파라미터를 어드바이스 메서드에 첫 번째 매개변수로 선언해야한다.

- Around 어드바이스는 JoinPoint의 하위 클래스인 ProceedingJoinPorint를 필수적으로 선언해야한다.



JoinPoint(인터페이스)before,after사용한다.

    ↑

proccedingJoinPoint(상속받은 인터페이스) around사용한다.


proccedingJoinPoint 인터페이스란?

- around 조인포인트에서 사용한다.

- 계속해서 진행하다를 뜻이다.

- 타겟객체 앞뒤에서 모두사용할떄 사용한다.

- procced메서드 : 요청을 가로채 실행하고 타겟을 실행시킨다.

(아규먼트가 있는 메서드와 없는메서드가있음)



PerformanceTraceAdvice.class



bean설정방법

AOP설정




Advice를 정의하는 태그

<aop:before>

- 메서드 실행 전에 적요오디는 어드바이스를 정의한다.

<aop:after-returning>

- 메서드가 정상적으로 실행된 후에 적요오디는 어드바이스를 정의한다.

<aop:after-throwing>

- 메서드가 예외를 발생시킬 때 적용되는 어드바이스를 정의한다.

<aop:after>

- 메서드가 정상적으로 실행되는지 또는 예외를 발생시키는지 여부에 상관없이 어드바이스를 정의한다.

try-catch-finally에서 finally블록과 비슷하다.

<aop:aroung>

- 메서드 호출 이전, 이후, 예외발생 등 모든 시점에 적용가능한 어드바이스를 정의한다.



PointCut표현식



예제

execution([접근제한제 패턴] 타입패턴 [타입패턴.]이름패턴 (타입패턴|"..",...)


execution(* hello(..))

- hello라는 이름을 가진 메서드를 선정하는 것이다.

파라미터는 모든종류를 다허용한다.

execution(* hello())

- 위와동일하나 파라미터가없는것이다.


execution(* myspring.user.service.UserServiceImpl.*(..))

- myspring.user.service.UserServiceImpl 클래스를 직접 지정하여 

이 클래스가 가진 모든 메서드를 선택한다.


execution(* myspring.user.service.*.*(..))

- myspring.user.service 패키지의 모든 클래스에 적용한다.

하지만 서브패키지의 클래스는 포함되지 않는다.


execution(* myspring.user.service..*.*(..))

- myspring.user.service 패키지의 모든 클래스에 적용된다.

그리고 '..'를 사용해서 서브패키지의 모든 클래스까지 포함한다.


execution(* *..Target.*(..))

- 패키지에 상관없이 Target이라는 이름의 모든 클래스에 적용한다.

다른 패키지에 같은 이름의 클래스가 있어도 적용이 된다는 점에 유의해야한다.

'개발 소발 > 개발 Spring' 카테고리의 다른 글

MyBatis란?  (0) 2017.11.27
AOP어플리케이션 작성 (annotation)이란?  (0) 2017.11.27
AOP란?  (0) 2017.11.24
jdbc환경설정(mysql)이란?  (0) 2017.11.21
데이터엑세스개념(jdbc,springjdbc)이란?  (0) 2017.11.21

Bean등록 및 메타정보구성이란?


Bean등록 메타정보 구성전략


1. XML 단독 사용

- 모든 Bean을 명시적으로 XML에 등록하는 방법이다.

- XML장점:생성된 Bean을 XML에서 확인할 수 있는 장점이 있다.

- XML단점:Bean개수가 많아지면 XML관리가 번거로워진다.

- 여러개발자가 같은 설정파일을 공유해서 개발할시 설정파일을 동시에 수정하면 충돌문제가생긴다.

- DI에필요함 Setter,constructor가 코드내에 반드시 존재해야한다.

- 개발중 보다는 운영중에 적합하다.





2. XML과 빈 스캐닝((Bean Scanning)의 혼용

-Bean에 해당되는 클래스에 어노테이션을 부여해준다.

-어노테이션 붙은 클래스를 자동으로 찾아 빈스캐닝을 해준다.(자동스캔)

-어노테이션을 부여하고 자동 스캔하면 XML문서자 많이 줄어든다.

-단점:Bean설정 정보를 한번에 파악하기 어려움이 있다. (의존관계파악어려움)


적합한 환경

- XML 단독 사용 : 운영환경적합하다.(한눈에 확인가능)

- XML과 빈 스캐닝((Bean Scanning) : 개발환경에적합하다.(XML을 공유하는 상황이 줄어듬)




Bean등록 및 의존관계 설정(annotation)

-@Component

-일반적인 스테레오타입이다.

-<bean>태그와 동일한 역할을 한다.

-@Repository

-영속성을 가지는 속성(파일,DB)을 가진 클래스이다.

-@Service

-비지니스로직을 가지는 클래스를 말한다.

-@Controller

-프리젠테이션레이어에서 사용한다.(웹어플리케이션에서 웹요청과 응답처리) 화면과 연결


Bean의존관계를 주입 Annotation

-@autowired

- 정밀한 의존관계 주입(DI)이 필요한 경우에 사용한다.

- 프로퍼티,setter메서드,생성자,일반메서드에 적용된다.

- 의존 하는 객체를 주입할떄 주로 Type을 이용하게된다.

- XML에서 <property> ,<constructot-arg>태그와 동일한 역할이다.


-@Resource

-기능면에선 autowired와 동일하다.

-프로퍼티,setter에서 제한적 사용된다.

-해당되는 객체를 가져올때 주로 Name으로 이용하게된다.


-@Value

-단순한값줄때 사용한다.

-@Qualifier

-@Autowired와 같이 사용한다.

-@Autowired는 타입으로 찾아 주입하는데, 동일한타입의 Bean객체가 여러개 존재할 때 특정 Bean을 찾기위해 사용한다. 


Component Scan을 지원하는 태그

<context:component-scan>태그

- @Component를 통해 자동으로 Bean을 등록한다.

- @Autowired로 의존관계를 주입받는 어노테이션을 클래스에서 선언하여 사용했을 경우,

해당 클래스가 위치한 특정 패키지를 Scan하기위한 설정을XML에 해준다

- 즉 위에있는 어노테이션을 읽어줄수있게 패키지명을 XML에 등록한다.

ex><context:component-scan base-package="myspring.di.annot" />

<context:include-filter>태그 & <context:exclude-filter>태그

-자동 스캔될시 포함시킬클래스, 포함시키지않을 클래스 구체적으로 명시한다.



SpringPrinter클래스



Hello클래스



value.properties파일



annot.xml






bean,properties설정이란?


Bean의존관계 설정방법

Property값 설정방법

Property파일을 이용한 설정


Bean의존관계 설정방법


Setter Injection

- Setter 메서드를 통해 의존관계가 있는 Bean을 주입하려면 <property>태그사용한다.

- ref는 객체 Bean이름을 통해 주입할 Bean을찾는다.

- value는 단순값이다.


ex)

class

bean.xml


Constructor Injection

- Constructor를 통해 의존관계가 있는 Bean을 주입하려면<constructor-arg>태그를사용한다.

- Constructor 주입방식은 생성자의 파라미터를 이용하기 때문에 한번에 여러개의 객체를 주입할 수 있다.<------------------Setter와차이점


ex)

class


bean.xml

index경우

name경우



Property설정방법




프로퍼티 파일을 이용할 설정방법

- 자주변경되는정보를 사용할때 사용한다.(Ex:DB정보)

- properties파일로 분리하는 깔끔하다.

- key=value로 구성된다.



프로퍼티파일생성


bean.xml




Junit,Spring-Test란?(의존성예제)


Junit

JunitTest클래스작성

Spring-Test


Junit특징

- TDD 테스트가 가장 중요하다.

- assert메소드제공한다.(테스트결과제공 예상값,실제값제공함.)

- Junit4부터는 테스트 지원하는 어노테이션제공한다.(@Test,@Before,@After)

- 각@Test 메서드가 호출할때 마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어지도록한다.


jUnit에서 지원하는 어노테이션


@Test

- 테스트하고자하는 메소드 위에 선언한다.

- 각각의 테스트 메서드가 실행될때 서로영향주지않고 각자실행시킨다.


@Ignore

- 선언된 메서드는 테스트를 실행하지않게한다.


@Before(@Test실행시 매번실행)

- @Test가 실행되기전에 반드시 실행할게 있다면 사용한다.


@After(@Test실행시 매번실행)

- @Test가 실행된 후에 실행되는 메소드이다.


@BeforeClass

@AfterClass

위와같으나 클래스가 한번생성될때만 사용한다.


테스트 결과를 확인하는 단정(Assert)메서드

-assertEquals(a,b);

-객체 일치확인한다.

-assertArratEquals(a,b);

-배열 일치확인한다.

-assertSame(a,b);

-객체의 주소값이 같는지 확인한다.

-assertTrue(a);

-조건a가 참인지 확인한다.

-assertNotNull(a);

-null이아님을 확인한다.






spring-test

Junit확장

@RunWith(SpringJunit4ClassRunner.class)

- Junit테스트 확장할때 사용한다.

- 테스트도중 ApplicationContext를 만들고관리해준다.

- @RunWith 각각의 테스트별로 객체가 생성되더라도 싱글톤의 ApplicationContext를 보장한다.


@ContextConfiguration

- 스프링 빈 설정파일의 위치를 지정할때 사용한다.


@Autowired

- 스프링DI에서 사용되는 특별한 어노테이션이다.

- 해당변수에 자동으로 빈을 매핑해준다.

- 스프링 빈 설정을 읽기위해 굳이 GenericXmlApplicationContext 사용할필요가없다.






'개발 소발 > 개발 Spring' 카테고리의 다른 글

Bean등록 및 메타정보구성이란?  (0) 2017.11.21
bean,properties설정이란?  (0) 2017.11.20
IoC,DI란?  (0) 2017.11.20
STS,maven이란?  (0) 2017.11.20
Spring프레임워크란?  (0) 2017.11.20

IoC,DI란?


Ioc

DI

Spring Di 컨테이너


IoC(제어의 역전)란?

- 제어권이 바뀐다.(사용자가아님 프레임워크가 제어권을가진다.(컨테이너))

- 개발자가 객체직접생성하지않는다.(컨테이너가 생성된다.)


IoC 의존관계를 결정,설정,생명주기를 해결하기위한 디자인패턴


IoC가아닌경우

-사용자가 New로 생성한다.

ex)


IoC이면

-new 생성직접안한다.

ex)


IoC컨테이너(제어권 가지고있음)

-객체 생성 생명주기 관리한다.

-의존성관리.

-POJO의 생성,초기화,서비스,소멸에 대한 권한을 가진다.


IOC분류

DL

DI


DL 의존성 검색(특정 컨테이너에 종속되는API사용)

- 저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용하여 Bean을 Lookup하는것이다.

- 컨테이너가 제공하는 API를사용하기때문에 컨테이너에 종속성이 늘어난다.

- EJB

- Spring

DI 의존성 주입(주로 많이사용)

-각 클래스간의 의존관례를 빈설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는것이다.

-spring

-PicoContainer

-SetterInjection(셋터통해 주입)

-Constructor(생성자통해 주입)

-Method(자바메서드통해주입)



DI개념(의존관계주입)

-의존관계 빈설정(사용자가 설정해줌) 어노테이션등등이 있다.

-컨테이너가 정보들을읽고 자동으로 설정해준다.

개발자의 역할

-의존관계 설정해준다. (어노테이션)

ex)



컨테이너가 흐름의 주체가 된다.(사용자가 설정해준것을 컨테이너가 연결한다.)


장점

-코드가 단순해진다.

-컴포넌트 간의 결합도가 제거된다.

ex)컨트롤러에서 서비스호출 New로 하지않는다.


3가지 유형

-SetterInjection (셋터통해 주입)

-Constructor (생성자통해 주입)

-Methodinjection (자바메서드통해주입)


클래스 호출방식

클래스->인터페이스->구현클래스

연결은 호출이 아닌 XML(설정파일)읽어와 의존성을 삽입해준다.

SetterInjection(한번에 한개씩) 

beans.xml

Hello.java


Constructor Injection(생성자생성)

beans.xml


Hello.java



Spring DI 컨테이너

- Spring DI컨테이너가 관리하는 객체를 빈(bean)이라고 하고, 

빈(bean)들을 관리한다는 의미로 컨테이너를 빈 팩토리(BeanFactory)라고 부른다.

- SpringAPI에서 BeanFactory 인터페이스제공한다.

- BeanFactory에 여러가지 컨테이너 기능을 추가하여 애플케이션 컨텍스라고부른다.


BeanFactory 

- Bean을 등록,생성 조회,반환 관리한다.

- 보통은 BeanFactory를 바로 사용하지 않고, 이를 확장한 ApplicationContext를 사용한다.

- getBean() 메서드가 정의되어있다.

ApplicationContext  <-DI컨테이너 역할을한다.

- Bean을 등록,생성,조회,반환 관리하는 기능은 BeanFactory와 같다.

- Spring의 각종 부가 서비스를 추가로 제공한다.

- Spring이 제공하는 ApplicationContext 구현 클래스가 여러가지 종류가있다.



'개발 소발 > 개발 Spring' 카테고리의 다른 글

Bean등록 및 메타정보구성이란?  (0) 2017.11.21
bean,properties설정이란?  (0) 2017.11.20
Junit,Spring-Test란?(의존성예제)  (0) 2017.11.20
STS,maven이란?  (0) 2017.11.20
Spring프레임워크란?  (0) 2017.11.20

STS,maven이란?


STS

스플링 이클립스(이크립스확장판)

스프링 지원 플러그인과 관련된 도구 지원


빈 정의 가능하다.

ex)beans.xml

class="SDD"

뒤에서 자세히나옵니다.


설정파일 생성.

위저드(XML파일형식)


bean정의

- 설정파일설정(의존관계) 프로퍼티 그래프형태로 볼수있다.


sts에서 프로젝트확인시 AOP적용대상 표현해준다.(빨간색으로 표현)


메이븐이란?


라이브러리관리 + 빌드툴(ANT역할 제공)


Dependent(의존관계) Libray 관리한다.

여러 프로젝트에서 사용하는 jar공유한다.

모든 프로젝트 빌드 프로세스를 일관되게 가져갈수있다.


과거 라이브러리 검색후 다운받아서 프로젝트에 추가하는 방식을 줄여준다.


Pom.xml에서 다운가능하다.


Pom.xml이란?

-메이븐프로젝트 생성시 생성된다.

-프로젝트정보를 표시한다.(bulid)

-dependencies(메이븐 자르 설정)

-dependency로 설정한다.

-dependenc <=사용하고싶은 Library(설정하면 local pc에 다운로드)

ex)


-Maven Repositories View기능이 있다.

-Window -> showview



'개발 소발 > 개발 Spring' 카테고리의 다른 글

Bean등록 및 메타정보구성이란?  (0) 2017.11.21
bean,properties설정이란?  (0) 2017.11.20
Junit,Spring-Test란?(의존성예제)  (0) 2017.11.20
IoC,DI란?  (0) 2017.11.20
Spring프레임워크란?  (0) 2017.11.20

Spring프레임워크란?


스프링 프레임워크의 정의와 전략

스프링 프레임워크의 특징

스프링 페리임워크의 기능요소


스프링프레임워크란?

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

엔터프라이즈 개발(뒷단을 제공 비지니스로직개발에 전념)보안,인증등을 제공한다.

스프링프레임워크의 전략

삼각형이다.(Portable Service Abstraction,Aop,Di)

Portable Service Abstract(서비스 추상화)

- 트랜잭션 추상화,Object Xml MAppting,데이터 액세스의 Exception을 제공한다.

- 개발자는 기술사용하는 인터페이스만 사용한다.


Di(의존관계주입)

객체지향 개발 충실하기위한 설계가 가능하도록 한다.

확장가능한 객체이다.(인터페이스만들고 구현클래스를 생성하게한다.)


AOP(관점지향프로그래밍)

기술 관련 코드를 분리에서 사용하게한다.


POJO

일반적인 자바 오브젝트이다.(HttpServlet는 웹컨테이너가잇어야해서 아님)

특정환경이나 규약에 종속되지않고 JRE만잇으면 사용가능한다.


스프링 프레임워크의 특징

컨테이너 역할

자바객체의 라이프사이클을 관리 ,스프링 컨테이너로부터 필요한 객체를 가져와사용한다.

DI지원

Spring 설정파일(XML) 이나 어노테이션 @ex 통해서 객체간의 의존관게를 설정한다.

AOP지원(관점지향)

핵심모듈(업무로직)에서 공통적인 로직(로그)을 분리에서 적용한다.

POJO지원

어떠한 규약에 종속되지않는 자바객체개발가능하다.

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

DB(COMMIT,ROLLBACK)등을 코드가 아닌 설정(XML,@어노테이션)으로 설정해서 모두 동일한 코드사용가능하다.

영속성 관 관련된 다양한 API 지원

Mybatis,Hibernate 등 DB처리위한 ORM프레임워크들과 연동지원한다.



스프링 프레임워크의 기능요소

7가지

 Spring Core

 스프링프레임워크에 기본기능제공(bean) *컨테이너기능

BeanFactory 지원

 Spring Aop

 업무로직과 공통로직을 분리

 Aspect 지향프로그래밍

 Spring Orm

 db 프레임워크와 연동가능하게함 

 Spring DAO

 jdbc코딩과 예외처리 간편화시킴 AoP 트랜잭션 관리 서비스 제공

 Spring Web

 웹애플리케이션 개발에 필요한 기본기능 제공

 다른 웹프레임워크와 연동

 Spring Context

 core부분을 확장

 국제화,이벤트,유효성검증등

 Spring WebMvc

 애플리케이션 로직과 웹애플리케이션을 분리에서 개발하게함


'개발 소발 > 개발 Spring' 카테고리의 다른 글

Bean등록 및 메타정보구성이란?  (0) 2017.11.21
bean,properties설정이란?  (0) 2017.11.20
Junit,Spring-Test란?(의존성예제)  (0) 2017.11.20
IoC,DI란?  (0) 2017.11.20
STS,maven이란?  (0) 2017.11.20

+ Recent posts