STS(Spring Tool Suite) 설치

 

https://spring.io/tools3/sts/all

 

Spring Tool Suite™ 3 (STS 3) Download page

Use one of the links below to download an all-in-one distribution for your platform. Choose either a native installer or simple archive, they contain equivalent functionality

spring.io

 

 

 

 

 

 

 

 

 

Maven 

- 프로젝트 관리도구로, 프로젝트 시작과 끝까지 단계맞춰서 사용하는 개발도구, 의존적 라이브러리를 자동으로 관리해주는 용도

 

 

 

File > New > Spring Legacy Project > Spring MVC Project 로 생성

Run > Run on Server 로 Tomcat 9.0 설정후 실행

 

 

Tomcat 설치

https://tomcat.apache.org/download-90.cgi

 

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

 

'IT > SPRING' 카테고리의 다른 글

[환경셋팅] 스프링 개발 환경 셋팅  (0) 2021.12.28
02_스프링 특징  (0) 2020.01.03
spring sts mapper.xml 소스가 반영안될때..  (0) 2019.06.26
스프링 프레임워크 특징  (0) 2019.05.13
POJO(Plain Old Java Object)  (0) 2019.05.13

소스 반영이 하도 안되서

서버 재기동, 컴퓨터 재부팅, .metadata\.plugins\org.eclipse.wst.server.core\tmp0 의 폴더삭제

별짓 다해봤지만.. 계속 안바뀌어서 너무 답답했다.

 

Preferences > Java > Compiler > Building > Output folder 에

Rebuild class file smodified by others 를 체크해주었고

Project clean 하고 서버 재실행하니까 좀 오래걸렸지만 변경된게 반영되었다!!

'IT > SPRING' 카테고리의 다른 글

02_스프링 특징  (0) 2020.01.03
01_개발환경 셋팅  (0) 2020.01.03
스프링 프레임워크 특징  (0) 2019.05.13
POJO(Plain Old Java Object)  (0) 2019.05.13
자바 기반의 프레임워크  (0) 2019.05.13

1. 경량(Lightweight)

크기 측면에서 가볍다. 스프링은 여러 개 모듈로 구성되어 있으며, 각 모듈은 하나 이상의 JAR파일로 구성되어 있다. 몇개의 JAR파일만 있으면 개발과 실행이 모두 가능하다. 따라서 스프링을 이용해서 만든 애플리케이션 배포도 빠르고 쉽다.
또한 PJOJ(Plain Old Java Object) 형태의 객체를 관리한다. POJO는 클래스를 구현하는 데 특별한 규칙이 없는 단순하고 가벼운 객체이므로, POJO를 관리하는 것은 기존의 EJB객체를 관리하는 것보다 훨씬 가볍고 빠를 수 밖에 없다.

2. 제어의 역행(Inversion of Control, IoC)

비즈니스 컴포넌트를 개발할때 신경써야 할 것이 낮은 결합도와 높은 응집도다. 스프링은 제어의 역행(Inversion of Control, IoC)를 통해 애플리케이션을 구성하는 객체간의 낮은 결합도를 유지한다.

ㅇ IoC 적용전 : 애플리케이션 수행에 필요한 객체 생성, 객체사이의 의존관계를 개발자가 직접 자바코드로 처리
                       의존관계에 있는 객체를 변경할 때 반드시 자바 코드를 수정해야함.

ㅇ IoC 적용후 : 객체 생성/객체사이 의존관계를 자바 코드로 직접 처리하는 것이 아니라 컨테이너가 대신 처리
                        소스에 의존관계가 명시되지 않아 결합도가 떨어져 유지보수에 편의

 - 결합도를 낮추기 위한 방법
 (1) 다형성(Polymorphsim)을 이용한 상속/메소드재정의/형변환 : interface 클래스 implements 
 (2) 디자인 패턴 : Factory 패턴 적용된 BeanFactory 클래스 추가
                      

3. 관점지향 프로그래밍(Aspect Oriented Programming, AOP)

관점지향 프로그래밍은 비즈니스 메소드를 개발할 때, 핵심 비즈니스 로직과 각 비즈니스 메소드마다 반복해서 사용하는 공통 로직을 분리함으로써 응집도가 높게 개발할수 있도록 지원

관점지향 프로그래밍의 기본개념 : 공통으로 사용하는 기능들은 외부의 독립된 클래스로 분리하고, 해당 기능을 프로그램 코드에 직접 명시하지 않고 선언적으로 처리하여 적용

공통 기능을 분리하여 관리할 수 있으므로 응집도가 높은 비즈니스 컴포넌트를 만들 수 있을 뿐만 아니라 유지보수 혁신적으로 향상 가능.

 

4. 컨테이너(Container)

컨테이너는 특정 객체의 생성과 관리를 담당하며, 객체 운용에 필요한 다양한 기능을 제공. 이랍ㄴ적ㄷ으로 서버 안에 포함되어 배포 및 구동된다. (Servlet 컨테이너는 tomcat서버에도 포함되어 있다.)

대표적 컨테이너 : Servlet 컨테이너 , EJB 컨테이너

애플리케이션 운용에 필요한 객체를 생성하고 객체 간의 의존 관계를 관리한다는 점에서 스프링도 일종의 컨테이너라고 할 수 있다.

 

'IT > SPRING' 카테고리의 다른 글

01_개발환경 셋팅  (0) 2020.01.03
spring sts mapper.xml 소스가 반영안될때..  (0) 2019.06.26
POJO(Plain Old Java Object)  (0) 2019.05.13
자바 기반의 프레임워크  (0) 2019.05.13
프레임워크의 장점  (0) 2019.05.13

POJO(Plain Old Java Object) : 평범한 옛날 자바 객체를 의미

ㅇ 대표적인 Not POJO 클래스 : Servlet클래스
    - 우리 마음대로 만들수 없으며, 반드시 Servlet에서 요구하는 규칙에 맞게 클래스를 만들어야 실행 가능

(참고 - Servlet 작성 규칙)
- javax.servlet, javax.servlet.http 패키지 import 해야함
- public 클래스로 선언되어야 함
- Servlet, GenericServlet, HttpServlet 중 하나를 상속해야 한다.
- 기본 생성자(Default Constructor)가 있어야 한다.
- 생명주기에 해당하는 메소드를 재정의(Overriding) 한다.

'IT > SPRING' 카테고리의 다른 글

spring sts mapper.xml 소스가 반영안될때..  (0) 2019.06.26
스프링 프레임워크 특징  (0) 2019.05.13
자바 기반의 프레임워크  (0) 2019.05.13
프레임워크의 장점  (0) 2019.05.13
[파일] 스프링 정리  (0) 2017.04.29

 

처리 영역 프레임워크 설명
Presentation Structs Struts 프레임워크는 UI Layer에 중점을 두고 개발된 MVC(Model View Controller) 프레임워크
Spring (MVC) Struts와 동일하게 MVC 아키텍쳐를 제공하는 UI Layer 프레임워크. Struts처럼 독립된 프레임워크는 아니고 Spring 프레임워크에 포함되어 있다.
Business Spring (IoC, AOP) Spring은 컨테이너 성격을 가지는 프레임워크. Spring의 IoC와 AOP모듈을 이용하여 Spring 컨테이너에서 동작하는 엔터프라이즈 비즈니스 컴포넌트를 개발할 수 있다.
Persistence Hibernate
or JPA
Hibernate는 완벽한 ORM(Object Relation Mapping) 프레임워크다. ORM프레임워크는 SQL 명령어를 프레임워크가 자체적으로 생성하여 DB연동을 처리한다. JPA는 Hibernate를 비롯한 모든 ORM의 공통 인터페이스를 제공하는 자바 표준 API
Ibatis 
or Mybatis

Ibatis 프레임워크는 개발자가 작성한 SQL명령어와 자바 객체(VO또는 DTO)를 매핑해주는 기능을 제공하며, 기존에 사용하던 SQL 명령어를 재사용하여 개발하는 차세대 프로젝트에 유용하게 적용할 수 있다. Mybatis는 Ibatis에서 파생된 프레임워크로써 기본 개념과 문법은 거의 같다.

 

'IT > SPRING' 카테고리의 다른 글

스프링 프레임워크 특징  (0) 2019.05.13
POJO(Plain Old Java Object)  (0) 2019.05.13
프레임워크의 장점  (0) 2019.05.13
[파일] 스프링 정리  (0) 2017.04.29
[링크] Spring 관련 API  (0) 2017.04.29

1. 빠른 구현시간

프레임워크를 사용하면 아키텍쳐에 해당하는 골격 코드를 프레임워크에서 제공하므로, 개발자는 비즈니스 로직만 구현하면 되므로 제한된 시간에 많은 기능 구현 가능

2. 쉬운 관리

같은 프레임워크로 구현된 어플리케이션들은 아키텍쳐가 동일하므로 관리하기 쉽다. 유지보수에 들어가는 인력과 시간을 줄일 수 있다.

3. 개발자들의 역량 획일화

초급개발자와 고급개발자의 지식과 경험이 다르므로 소스 품질은 다르나, 프레임워크를 사용하면 생성한 코드가 비슷해진다. 관리자 입장에서 개발 인력을 더 효율적으로 구성할 수 있다.

4. 검증된 아키텍쳐의 재사용과 일관성 유지

프레임워크에서 제공하는 아키텍쳐를 이용하므로 아키텍쳐에 관한 별다른 고민이나 검증없이 소프트웨어를 개발할 수 있으며, 이렇게 개발한 시스템은 시간이 지나도 유지보수 과정에서 아키텍쳐가 왜곡되거나 변형되지 않는다.

 

'IT > SPRING' 카테고리의 다른 글

POJO(Plain Old Java Object)  (0) 2019.05.13
자바 기반의 프레임워크  (0) 2019.05.13
[파일] 스프링 정리  (0) 2017.04.29
[링크] Spring 관련 API  (0) 2017.04.29
[교육] Spring Framework 교육 (4일차)  (0) 2017.04.29

PART2 10.mht

PART3 1,2(v0.1).mht

PART3 1,2(v1.0).mht

스프링 정리1.pptx

PART1프로젝트의 기본 구조 구성 1-1,1-2.mht

PART2 2,3.mht


'IT > SPRING' 카테고리의 다른 글

자바 기반의 프레임워크  (0) 2019.05.13
프레임워크의 장점  (0) 2019.05.13
[링크] Spring 관련 API  (0) 2017.04.29
[교육] Spring Framework 교육 (4일차)  (0) 2017.04.29
[교육] Spring Framework 교육 (3일차)  (0) 2017.04.29

Spring 4.2.9 Api doc

http://docs.spring.io/spring/docs/4.2.9.RELEASE/javadoc-api/


MyBatis 3.4 API doc

http://www.mybatis.org/mybatis-3/apidocs/


MyBatis-Spring API doc

http://www.mybatis.org/spring/apidocs/index.html


AspectJ Run time Api doc

http://www.eclipse.org/aspectj/doc/released/runtime-api/index.html


jUnit4.12 api doc

http://junit.org/junit4/javadoc/latest/


Log4j2 api doc

https://logging.apache.org/log4j/2.x/log4j-api/apidocs/index.html


MyBatis 잘 정리된 site

http://terasolunaorg.github.io/guideline/5.0.x/en/ArchitectureInDetail/DataAccessMyBatis3.html#id28


Apache commons dbcp 

https://commons.apache.org/proper/commons-dbcp/api-2.1.1/

'IT > SPRING' 카테고리의 다른 글

프레임워크의 장점  (0) 2019.05.13
[파일] 스프링 정리  (0) 2017.04.29
[교육] Spring Framework 교육 (4일차)  (0) 2017.04.29
[교육] Spring Framework 교육 (3일차)  (0) 2017.04.29
[교육] Spring Framework 교육 (2일차)  (0) 2017.04.29
에버노트 원본 (사진포함)
==> https://www.evernote.com/shard/s350/sh/8ed9f1d3-9a40-404a-8565-eea3b1520a76/f770d2176d4f9aa798722d7d3c2526a4

-----------------------------------------------------------------------------------------------------------------------------

2017.04.13 목



<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.8.2</version>
</dependency>
Log4j 구성요소
• Logger (Category): Log4j의 핵심 클래스로 로그파일을 작성하고 관리 하는 역할.
• Appender: Logger로부터 전달 된Logging 메세지를어디에 출력 또는저장할 것인지 결정하는역할
• Layout : Logging메시지를 어떤형식으로 출력할것인지 출력Layout을결정한다

Log4j 로그의레벨
• 로그레벨(Priority)
     – FATAL : 가장 심각한 상황의 에러가 났을 경우 사용한다. (fatal인경우 fatal만 출력, 나머지는 출력되지 않음)
     – ERROR : 일반적인 에러가 났을 때 사용 한다.
     – WARN : 에러는 아니나주의가 필요한 경우 사용 한다.
     – INFO : 일반 정보를 나타낼 때 사용한다.
     – DEBUG : 개발시 프로그램 디버깅용 메시지를 출력해야 하는 경우 사용한다.
     – TRACE : DEBUG 보다 낮은 레벨의 메시지 출력시 사용
• 우선순위는 FATAL이 가장높고 TRACE가 가장 낮다.
• 로그레벨로 선택된 것 이상의 로그레벨 메시지가 모두 출력 된다.
– Ex : INFO로설정한경우-> FATAL, ERROR, WARN, INFO로 설정된 메시지가 모두 출력된다


<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<File name="File" fileName="c:/temp/log/logfile.log" append="true">
<PatternLayout
pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-5level %logger{36} - %msg%n" />
</File>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</Appenders>

<Loggers>
<!-- <Logger name="org.springframework" level="DEBUG" additivity="false"> -->
<!-- <AppenderRef ref="console" /> -->
<!-- <AppenderRef ref="File" /> -->
<!-- </Logger> -->
<!-- <Logger name="myspring" level="DEBUG"> -->
<!-- <AppenderRef ref="console" /> -->
<!-- <AppenderRef ref="File" /> -->
<!-- </Logger> -->

<Root level="TRACE">
<AppenderRef ref="console" level="DEBUG" />
<AppenderRef ref="File" level="DEBUG" />
</Root>
</Loggers>
</Configuration>



MVC(Model View Controller) 패턴
웹에 특화(그림)





<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>4.2.9.RELEASE</version>
</dependency>




Spring MVC
(1) Controller : Bean 등록
(2) RequestMapping : (method 선언부 위에 작성)Request와  컨트롤러 내의 메서드를 매핑시켜줌
(3) RequestParameter : request.getParameter (요청데이터의 값을 추출)











'IT > SPRING' 카테고리의 다른 글

[파일] 스프링 정리  (0) 2017.04.29
[링크] Spring 관련 API  (0) 2017.04.29
[교육] Spring Framework 교육 (3일차)  (0) 2017.04.29
[교육] Spring Framework 교육 (2일차)  (0) 2017.04.29
[교육] Spring Framework 교육 (1일차)  (0) 2017.04.29

에버노트 원본 (사진포함)

==> https://www.evernote.com/shard/s350/sh/369183bf-a093-46a2-a70a-e2f9dc30853b/6ed9a67d2ff2b9ff2ea61f0eac93bc91


-------------------------------------------------------------------------------------------------------------------------------------------------


2017.04.12 수

MyBatis
MyBatis Maven 추가

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>

mapper.xml : SQL문을 포함하고있는 XML
sqlMapConfigxml : MyBatis config 포함
       - DataSource(Connection pooling) 정보
       - VO(Value Object)객체의 클래스명 기술
       - 

OR Mapping(Object Relational Mapping)










MyBatis3 만 사용한경우
sqlConfigMapping 
1) DB접근정보
2) sql Mapper 설정 경로
3) VO 객체 정보



보라색 : 개발자
파란색 : MyBatis Spring 연동 API (SqlSessionFactory, SqlSessionTemplate)
노란색 : 

SqlSessionFactoryBean



public class MyBatisTest {
@Autowired
@Qualifier("dataSourceDBCP")
DataSource ds;

@Autowired
ApplicationContext context;

@Autowired
SqlSession session;

@Test
public void sql(){
UserVO vo = new UserVO("ex1", "CHOI", "여", "분당");

// int cnt = session.update("userNS.updateUser", vo);
int cnt2 = session.insert("userNS.insertUser",vo);
System.out.println("갱신된 건수 : " + cnt2);

List<UserVO> userList = session.selectList("userNS.selectUserList");
for(UserVO user:userList){
System.out.println(user.toString());
}
System.out.println("---->single Row");
UserVO user = session.selectOne("userNS.selectUserById","JEONG");
System.out.println(user);
}











Code 재사용
1. Copy& Paste
2. 함수, 메서드
3. 상속
4. AOP

AOP(Aspect Oriented Programming) - 관점지향 프로그래밍

ㅇ Aspect  = Advice + PointCut
Advice : 타겟에 제공할 부가기능(로깅,보안 등)을 담고 있는 클래스(모듈)
PointCut : 부가기능을 제공할 핵심기능을 선택(선별)하는 정규표현식 (표현식 execution. 메서드의  Signature를 비교하는방법 주로 사용)
Target : 업무 로직을 담고있는 핵심기능 부가기능을 적용할 대상
JoinPoint : 타겟의 핵심기능에 해당되는 클래스의 메서드/ 어드바이스가 적용될 수 있는 위치
Weving : 포인트컷에 의해서 결정된 타겟의 조인 포인트에 부가기능(어드바이스)을 삽입하는 과정
 AOP가 핵심기능(타겟)의 코드에 영향을 주지 않으면서 필요한 부가기능(어드바이스)을 추가할 수 있도록 해주는 핵심적인 처리과정






'IT > SPRING' 카테고리의 다른 글

[파일] 스프링 정리  (0) 2017.04.29
[링크] Spring 관련 API  (0) 2017.04.29
[교육] Spring Framework 교육 (4일차)  (0) 2017.04.29
[교육] Spring Framework 교육 (2일차)  (0) 2017.04.29
[교육] Spring Framework 교육 (1일차)  (0) 2017.04.29

+ Recent posts