카테고리 없음

스프링을 위한 프로그램 설치 처음부터 끝까지

tttck88 2019. 2. 17. 18:37

jdk 설치

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

jdk-8u201-windows-x64.exe

다운로드

설치 경로는 util_zip로 통일


java_home 환경변수 설정

제어판 시스템 및 보안 시스템 고급 시스템 설정

시스템 속성 창의 고급 탭 클릭한 뒤 환경변수 버튼 클릭

새로만들기 버튼 클릭하여 새사용자변수 창을 실행한 뒤

java_home 환경변수 이름과 값을 입력하고 확인을 누른다

환경변수의 사용자 변수에 java_home 환경변수가 추가되었다면 확인 버튼을 눌러 환경변수 설정을 완료한다

환경변수는 jdk 설치경로를 지정한다.


이클립스 가

웹개발을 위해서는 elipse ide for java ee developer 배포판을 다운로드

https://www.eclipse.org/downloads/packages/

다운로드

설치경로 통일.

이클립스 홈 디렉터리 eclipse.ini라는 환경파일에 -vmargs 옵션 위에 -vm을 추가하고 jdk가 가진 javaw.exe 파일의 정확한 위치를 지정

ex)-vm

c: ~~


톰캣 서버 설치 8.5


이클립스 서버 등록


오라클 다운로드

오라클 포트 변경

sts 플러그인 설치

utf-8 설정


스프링 기반의 웹프로젝트 생성


스프링 레거시 프로젝트 선택 후

템플릿은 스프링 mvc 프로젝트 선택


최상위 패키지 지정(경로에 최소 세개 이상의 패키지 지정)

ex)com.springbook.biz


프로젝트 설정 변경

변경하고자 하는 프로젝트를 오른쪽 클릭 하여 프로퍼티스 선택

왼쪽에 프로젝트 facets를 선택하고 자바 버젼을 설치한 버젼에 맞게 변경

오른쪽에 런타입 탭을 선택하고 아파치 톰캣 버젼을 체크한 후에 적용

자바빌드패스 라이브러리 탭에서 경로 확인해서 변경 적용 여부 확인


파일 정리

src/main/resources 소스 폴더에 log4j.xml 파일을 제외한 나머지 삭제

src/main/webapp/WEB-INF/web.xml 파일에서 <web-app> 루트 엘리먼트를 제외한 나머지 설정 모두 삭제 후 저장

porm.xml 파일의 스프링 버젼을 최신화

ex)

<properties>

<java-version>1.6</java-version>

<org.springframework-version>5.1.5.RELEASE</org.springframework-version>

<org.aspectj-version>1.6.10</org.aspectj-version>

<org.slf4j-version>1.6.6</org.slf4j-version>

</properties>


참고 - https://javacpro.tistory.com/56


컨트롤러 서블릿 생성 방법!


new servlet 패키지와 클래스네임을 등록해주고

넥스트 후 url매핑 설정

ex)name = action, url mappings /action 더블 클릭 후 *.do로 설정


web.xml 관련 설정 자동 추가

ex)

  <servlet>

    <servlet-name>action</servlet-name>

    <servlet-class>com.springbook.view.controller.DispatcherServlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>

  </servlet-mapping>


모든 do 요청을 디스패처서블릿이 클래스의 객체가 처리한다는 설정


스프링 mvc 적용

web.xml  파일에 등록된 디스패처 클래스를 스프링 프레임워크에서 제공하는 디스패처로 변경

스프링 컨테이너 및 설정 파일

src/main/resources 오른쪽 클릭 new - other - 스프링 빈 콘피규어레이션 파일

이름은 appplicationContext (스프링(xml) 설정파일 생성)


설정파일을 로딩할경우에 컨테이너가 구동되며


<bean> 등록된 클래스들을 객체 생성하는 즉시로딩방식이다

ApplicationContext 가 스프링이 제공하는 컨테이너이다

구현클래스는 제너릭xml어플리케이션콘텍스트와

xml웹어플리케이션콘텍스트


스프링 설정파일 이름이 무엇이든 <beans>를 루트엘리먼트로 사용하며

엘리먼트 시작태그에 네임스페이스를 비롯한 xml 스키마 관련정보가 설정된다

sts를 이용해 만든 스프링 설정파일에는 beans 네임스페이스가 디폴트로 선언되어있으며, spring-beans.xsd 스키마 문서가 스키마로케이션으로 등록되어 있기에

<bean>과 <import>가 사용가능


<import>엘리먼트 태그를 사용하여 다른 스프링 설정 파일을 포함함으로써 한 파일에 작성하는것과 같은 효과를 낼 수 있음


<bean>엘리먼트 태그에는 클래스를 등록 할 수 있다.

id와 클래스 속성을 주어야함


어노테이션을 기반으로한 di

스프링설정파일에 context관련 네임스페이스와 스키마문서의 위치를 등록해야한다

p넴이스페이스이도 추가해놓자


컴포넌트스캔 설정

스프링 설정파일에 애플리케이션에서 사용할 객체들을 <bean> 등록하지 않고

자동으로 생성하려면 <context:component-scan/> 엘리먼트를 지정해야함

이 설정을 추가하면 스프링 컨테이너는 클래스패스에 있는 클래스들을 스캔하여

@Component가 설정된 클래스들을 자동으로 객체 생성


ex)<context:component-scan base-package="com.~~~~.~~~"></context:component-scan>

경로에 있는 스캔


사용하고자 하는 클래스위에 @Component("아이디(이름)")

메모리에 생성된 클래스의 객체를 생성하기 위해서 아이디를 지정

지정 안해줄경우에는 자동으로 이름이 설정 ex)LgTV -> lgTV


자주변하는 객체는 xml설정 변경되지 않는 객체는 어노테이션

허나 라이브러리 형태로 제공되는 클래스는 반드시 xml 설정을 통해서만 사용 가능


보드 테이블 생성

create table board(

seq number(5) primary key,

title varchar2(200),

writer varchar2(20),

content varchar2(2000),

regdate date default sysdate,

cnt number(5) default 0

);


보드vo 작성

테이블 컬럼과 동일한 이름의 private 멤버변수 선언

그 변수에 게터세터 선언


오라클 jdbc mybatis 연동

https://offbyone.tistory.com/18

https://pjsprogram.tistory.com/2


ex)

<repositories>

    <repository>

        <id>oracle</id>

        <name>ORACLE JDBC Repository</name>

        <url>http://repo.spring.io/plugins-release/</url>

    </repository>

</repositories>


<dependencies>

        <!-- spring jdbc -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-jdbc</artifactId>

            <version>4.2.3.RELEASE</version>

        </dependency>

<!-- DBCP 등록 설정 -->

<dependency>

<groupId>commons-dbcp</groupId>

<artifactId>commons-dbcp</artifactId>

<version>1.4</version>

</dependency>

<!-- 오라클 JDBC 라이브러리 등록 -->

<dependency>

<groupId>com.oracle</groupId>

<artifactId>ojdbc6</artifactId>

<version>11.2.0.3</version>

</dependency>

<!-- MyBatis 라이브러리 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.4.1</version>

</dependency>

<!-- 마이바티스와 스프링 연동을 위한 라이브러리 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.3.0</version>

</dependency>


applicationContext.xml 수정


dao 작성

@resp~

@auto~

mybatis


서비스 작성(alt shift t)

dao에 implements 삭제


서비스 구현 클래스 작성

@ser~

@auro

BoardDAO


트랜잭션 처리


스프링 설정 파일에

<!--트랜잭션 설정-->

<bean id="txmanager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"></property>

</bean>

<tx:advice id="txAdvice" transaction-manager="txmanager">

<tx:attributes>

<tx:method name="get*" read-only="true"/>

<tx:method name="*"/>

</tx:attributes>

</tx:advice>

<aop:config>

<aop:pointcut id="txPointcut" expression="execution(* com.springbook.biz..*(..))"/>

<aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/>

</aop:config>


porm.xml에 aop 라이브러리 추가

<!-- AOP 라이브러리 추가 -->

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjweaver</artifactId>

<version>1.8.8</version>

</dependency>



스프링 버젼 같게 해야함

<properties>

<java-version>1.6</java-version>

<org.springframework-version>5.1.5.RELEASE</org.springframework-version>

<org.aspectj-version>1.6.10</org.aspectj-version>

<org.slf4j-version>1.6.6</org.slf4j-version>

</properties>


<dependencies>

        <!-- spring jdbc -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-jdbc</artifactId>

            <version>5.1.5.RELEASE</version>

        </dependency>


vo, dao가 모델기능의 자바객체이다


url 정보 수정


수정 전 프로젝트 이름 대신 biz가 컨텍스트 경로로 출력되어 있음


ex) http://localhost:8080/biz/login.jsp

->

http://localhost:8080/BoardWeb/login.jsp


서버 프로젝트에 server.xml 파일 수정


ex)<Context docBase="BoardWeb" path="/BoardWeb" reloadable="true" source="org.eclipse.jst.jee.server:BoardWeb"/></Host>


글 목록 검색 기능 구현


오라클 포트 변경


https://m.blog.naver.com/PostView.nhn?blogId=jeweltot&logNo=100138298543&proxyReferer=https%3A%2F%2Fwww.google.com%2F