매일 조금씩

01/22 ! - Maven 웹 프로젝트 만들기, Spring(1) 본문

빅데이터 플랫폼 구축을 위한 자바 개발자 양성과정

01/22 ! - Maven 웹 프로젝트 만들기, Spring(1)

mezo 2021. 2. 25. 19:57
728x90
반응형

Maven -> 프로젝트

             java - java project

             JSP - Dynamic Web Project

             => 라이브러리를 수동 관리

             Maven Project (Ant -> Maaven -> Gradle)

             maven.apach.org

             gradle.org

             => 라이브러리를 자동 관리

                            @pom.xml

              => 복잡한 조건 컴파일(빌드 : build ) 자동관리

 

 


 

 

 

2.  Maven 프로젝트 만들기

 

> ex01

어제와 같이 프로젝트 Maven으로 만들어서 

mariadb랑 mybatis 라이브러리 추가한후, 

log4j.xml과 myBatisConfig.xml을 다른 프로젝트에서 복사해와서 src/main/java 폴더에 붙여넣기 한다.

 

myBatisConfig에서 mapper는 없앤다.

 

App.java를 작성한 후 실행시키면 

설정성공은 뜨는데 로그가 안뜬다. 

 

로그가 뜨게 하려면

log4j를 검색해서 가져온 후 pom.xml에 추가하여 라이브러리를 자동 다운로드 받는다.

 

그럼 로그가 뜬다.

 

전체적인 프로젝트 구성은 이렇다.

 

 

myBatis로 dept 테이블 검색

 

 

 

 

 

 

3. Maven 웹 프로젝트 만들기

 

> web01

 

이렇게 만들고 나면 에러가 나있다. 

 

 

웹프로젝트 만들고 나서 가장먼저 해야할일

-> 서버설정

서버를 모르기때문에 에러가 나 있는데 그걸 해결한다.

 

 

 

 

전체 파일 구조

 

 

 

 

 

 

 

 

Spring


Spring

             객체 관리용 프레임워크

            => Spring MVC

                 1) DI (Dependency Inject : 의존 주입)

                              객체 생성

                                      new -> spring

                 2) AOP(Aspect Orientation Programming : 관점 중심 프로그래밍)

       

spring.io

Spring | Home

 

Spring makes Java simple.

Level up your Java code and explore what Spring can do for you.

spring.io

 

스프링 프레임워크

Spring의 core

 

 

spring tool shuit를 다운받아야 

eclipse plug-in-sts 이 플러그인으로 ㄱ져와서 

이걸 깔아야 스프링을 제작해서 뭔가를 처리하기에 편리하다.

 

 

 

1. Spring 환경 설정

1) workspace 변경

workspace를 spring-workspace로 바꾼다.

File > Switch Workspace > spring-workspace

 

프로젝트 설정 다해주고

  • General에서 자바 설정 - font, spelling, workspace
  • Web에서 웹 설정 - CSS, HTML, JSP

 

2) sts 설치

Help > Eclipse Marketplace 에서 sts(sprint tool suit) 검색해서 v3 설치

이렇게 한후 나오는 창에서 accept 하고 finish 한다.

 

 

그리고 설치중에 어떤창이뜨는데 'install anyway'를 누른다.

 

 

설치가 다되면 restart하겟냐는 창이 나온다. restart 하면 된다.

 

 

3) Spring 화면으로 변경

다음과 같은 과정으로 Spring 베이스의 화면으로 변경한다.

 

 

이렇게 Spring 베이스 화면으로 변경한 후,

프로젝트를 만들기 전에 server를 tomcat 9.0으로 설정해준다.

 

4) server 를 tomcat 9.0으로 설정하기

다음에 나오는 창에서 apache tomcat 9.0 폴더 찾아서 선택해주면됨

 

 

 

 

2. Spring 프로젝트 만들기


[ Spring 프로젝트 만드는 방법 2가지 ]

2-1. 수동으로 lib 추가해서  Spring 프로젝트 만들기

    ftp 에서 Java > Spring > APIs > *.jar 를 모두 가져가서 APIs - Spring 폴더에 저장한다.

2-2. Maven으로 Spring 프로젝트 만들기 (라이브러리 관리 용이)


2-1. 수동으로 lib 추가해서 Spring 프로젝트 만들기

프로젝트를 만들때

bean을 어떻게 사용할건지 써준다.

DI (Dependency Inject : 의존 주입) 방식으로 구현

 

1) New > Spring Legacy Project 로 Spring 프로젝트를 만들기

이때 Simple Java를 선택해서 만든다.

 

 

2) Spring 라이브러리 추가하기

이렇게 전부 Spring 라이브러리를 전부 추가한다.

 

 

3) bean 파일 생성후 실행시키기

> SpringEx01

원래는 'basic 패키지' 처럼 동작 했던 것이 new역할을 Spring에게 넘겨줌으로써 'spring 패키지'처럼 동작한다.

이때 new역할을 넘겨주기 위해 new가 생성하는 bean을 대신 만들어주는 spring 파일이 필요하다.

 

 

일반 파일과 다르게  Eclipse 에서 Spring Bean Configuration File 이라고 제공하는게 있다. 그걸로 만들면 된다.

 

파일이름을 적고 우린 bean만 정의할 것이므로 bean만 선택해서 만든다.

 

이렇게 context.xml 파일을 만든후 다음과 같이 작성한다.

> context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
	
	<bean name="helloBean1" class="spring.HelloBean1" />
	<bean id="helloBean2" class="spring.HelloBean1" />

</beans>

 

 

main 자바 파일에서 context.xml 의 bean을 가져다쓰기 위해선

ApplicationContext를 반드시 생성해줘야한다.

ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:spring/context.xml");

 

호출할땐 bean의 name을 쓸수도 있고 id를 쓸수도있다.

 

 

main 의 전체 코드는 다음과 같다.

> ApplicationMin.java

package spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ApplicationMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext ctx
		= new ClassPathXmlApplicationContext("classpath:spring/context.xml");
		
		HelloBean1 helloBean1 = (HelloBean1)ctx.getBean("helloBean1");
		helloBean1.sayHello("박문수");
		
		HelloBean1 helloBean2 = (HelloBean1)ctx.getBean("helloBean2");
		helloBean2.sayHello("홍길동");
	}

}

 

> HelloBean1

package spring;

public class HelloBean1 {
	
	public HelloBean1() {
		// TODO Auto-generated constructor stub
		System.out.println("HelloBean1() 생성자 호출");
	}
	
	public void sayHello(String name) {
		System.out.println(name + " 님 안녕하세요");
	}
}

 

 

실행결과는 다음과 같다.

 

 

 

 

 

 

 

 

 

2-2. Maven으로 Spring 프로젝트 만들기

만들기전에 먼저 Maven 프로젝트로 bean configuration File을 사용하여 구현해보도록 한다.

 


2-2-1. Maven 프로젝트 -  bean configuration File 적용

2-2-2. Maven으로 Spring 프로젝트 만들기


2-2-1. Maven 프로젝트 - bean configuration File 적용

1) maven 프로젝트를 internal -> quickstart로 하나만든다.

 

2) 라이브러리 추가하기 (pom.xml)

한번 다운로드 받으면 그걸 계속 쓴다.

그래서 라이브러리 버전을 변경하고 싶을 때 

pom.xml 에서 버전을 고치고 저장하면 라이브러리들이 자동으로 버전이 변경된다. 

이렇게 Maven은 버전관리가 유용하다.

 

 

3) bean configuration File 구현하기

maven 프로젝트에 만든다.

 

> spring1 > com.exam.spring1

bean 구현

 

> spring1 > com.exam.spring2

클래스 여러개만들어서 여러개 bean 구현

 

> spring1 > com.exam.spring3

클래스 여러개만들고 인터페이스 만들어서 다형성을 활용한 bean 구현

  • ApplicationContext -  자동 종료
  • GenericXmlApplicationContext - 수동 종료(close()필요)

> spring1 > com.exam.spring4

객체 생성 방법

  • prototype - 객체 변수 계속 만들어감
  • singleton - 한번 만들어진 객체를 지속적으로 사용 대표적인걸로 static 이 있음 (default               

 

 

> spring2 > com.exam.spring2

다양한 생성자를 통한 호출

 

Spring에서 가장 중요한건 new를 Spring에 맡기는 거다. 그방법을 DI라고 한다.

 

 

> spring2 > com.exam.spring3

사용자 정의 클래스는 어떻게 호출할까

 

 

> spring2 > com.exam.spring4

사용자 정의 클래스와 setter와 getter를 통해 어떻게 값을 가져오면 될까

 

 

2-2-2. Maven 으로 Spring 프로젝트 만들기

전자정부 프레임워크에선 에러가 안생기는데

이클립스 버전이 올라가면서 에러가 생긴다.

 

1) Spring 프로젝트를 하나만든다.

 

 

 

728x90
반응형