씨네
공부하는 개발자 강씨네
씨네
  • 분류 전체보기 (460)
    • Web (21)
      • HTML (11)
      • CSS (10)
    • JS 관련 (49)
      • JavaScript (27)
      • JQuery (22)
    • TS 관련 (15)
      • TypeScript (15)
    • NodeJS (7)
      • NodeJS (7)
    • 따라하며 배우는 시리즈 (23)
      • NodeJS & ReactJS Basic (23)
      • NodeJS & ReactJS Movie (0)
      • NodeJS & ReactJS Youtube (0)
      • NodeJS & ReactJS ChatBot (0)
    • SPA (14)
      • React (14)
      • Vue (0)
      • Anguler (0)
    • Java 관련 (118)
      • Java (52)
      • JDBC (6)
      • JSP & Servlet (18)
      • Spring Legecy (38)
      • SpringBoot (4)
    • Python (26)
      • Python (20)
      • PyMongo (1)
      • Django (5)
    • Git (24)
      • Github (24)
    • RDB (22)
      • Oracle (21)
      • MySQL (1)
    • NoSQL (5)
      • MongoDB (5)
    • OS (4)
      • Linux (4)
    • 빅데이터 (2)
      • hadoop (2)
    • IDE (20)
      • eclipse (11)
      • VSCODE (4)
      • VisualStudio (1)
      • IntelliJ (1)
      • PyCharm (1)
      • DBeaver (2)
    • Install (3)
      • Tomcat (1)
      • Docker (1)
      • Anaconda (1)
    • 오류&에러 (28)
      • TS (2)
      • NodeJS (7)
      • SQL (8)
      • Java (1)
      • Spring (4)
      • Git (6)
      • 기타 (0)
    • 알고리즘 (67)
      • 수열 (1)
      • 백준(backjoon) (39)
      • Programmers (27)
    • 자격증 (5)
      • SQLD (5)
    • 기타 (2)
    • IT유튜브로 지식쌓기 (2)

공지사항

인기 글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
씨네

공부하는 개발자 강씨네

[Spring] Hello, Spring! (스프링 프로젝트 실행)
Java 관련/Spring Legecy

[Spring] Hello, Spring! (스프링 프로젝트 실행)

2022. 9. 4. 15:10
728x90

 

 

이클립스를 이용해서 Maven Project를 먼저 생성 후 부터 진행하겠습니다.

pom.xml에 spring-context 모듈을 사용하겠습니다.

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>spring4</groupId>
	<artifactId>testProject</artifactId>
	<version>0.0.1-SNAPSHOT</version>


	<dependencies>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.3.15</version>
		</dependency>
	</dependencies>
	
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>utf-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

해당 클래스를 이클립스에 만들고 코드를 작성해보겠습니다.

 

실행시키면 이렇게 잘 출력이됩니다.

스프링은 원래 모듈을 가져와서 사용하는데 기본적으로 자바를 기반으로 만들었기 때문에 순수 자바코드도 잘 실행이 됩니다.

 

프로젝트의 구조를 다시한번 봤을때 resources안에 있는것은 직접적인 기능을 구현하는 것이 아닌 도움을 주는 역할의 파일들을 모아 놓는곳이라고 했었는데요.

applicationContext.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.xsd">

	<bean id="tWalk" class="lec03Pjt001.TransportationWalk" />
	
</beans>

applicationContext.xml파일 안에는 이런 코드를 작성을 했습니다.

스프링은 컨테이너 안에 객체를 모아둡니다.

스프링은 객체 메모리 로딩을 하긴하는데 메모리 생성이 될 때 스프링 컨테이너라는 IoC안에 큰그릇을 만들어 둡니다.

이 큰 그릇안에 객체를 모두 생성해 놓는 것이죠.

실제로 필요할때마다 이 객체들을 가져다가 사용하게됩니다.

또한 스프링 컨테이너에서는 객체를 Bean이라고 하는데 객체를 만들어주는 것이 applicationContext.xml 파일입니다.

 

위의 코드에서 bean태그를 보겠습니다.

id는 tWalk이며 class는 lec03Pjt001.TransportationWalk라고 나와있습니다.

패키지명과 클래스의 풀네임을 의미하겠네요.

이렇게 명시해주면 이 클래스를 직접 생성한다라는 의미가 됩니다.

new 키워드를 통해 객체를 생성하지 않아도 사용을 할수있습니다.

 

위의 코드에서 TransportationWalk 객체를 new 키워드로 생성하지 않아도 잘 실행이 됩니다.

한가지 다른것은 앞뒤로 뭔가 로그가 찍히고 있는데요.

컨테이너에 접근하여 객체를 생성하기 때문에 그러한 과정에서 로그가 찍힌것입니다.

 

package lec03Pjt001;

import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {

	public static void main(String[] args) {
		
		GenericXmlApplicationContext ctx = 
				new GenericXmlApplicationContext("classpath:applicationContext.xml");
		
		TransportationWalk transportationWalk = ctx.getBean("tWalk", TransportationWalk.class);
		transportationWalk.move();
		
		ctx.close();
	}
	
}

위의 코드는 스프링 컨테이너에 먼저 접근을 한뒤 스프링 컨테이너에서 tWalk라는 bean객체를 가져다 쓴예시입니다.

GenericXmlApplicationContext를 사용하여 컨테이너에 접근하는 방법이 있습니다.

GenericXmlApplicationContext클래스를 사용하는데 파라미터로  applicationContext.xml 리소스를 작성하면 됩니다.

 

이렇게 컨테이너에 접근을 한 객체를 만들었다면 getBean을 이용해서 bean객체를 가져올수 있게됩니다.

 

 


이 글은 자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌를 수강하며 공부한 내용을 정리한 글입니다.

https://www.inflearn.com/course/dashboard

 

https://www.inflearn.com/course/dashboard

 

www.inflearn.com

 

728x90
저작자표시 (새창열림)

'Java 관련 > Spring Legecy' 카테고리의 다른 글

[Spring] Maven을 이용한 스프링 프로젝트 생성  (0) 2022.09.03
[Spring] JavaConfig(xml을 java로 변경)  (0) 2022.04.12
[Spring] Spring JDBC  (0) 2022.04.11
Spring] update(버전설정 잡기)  (0) 2022.04.10
[Spring] 파일 업로드 / 다운로드(file upload / download)  (0) 2022.04.09
    'Java 관련/Spring Legecy' 카테고리의 다른 글
    • [Spring] Maven을 이용한 스프링 프로젝트 생성
    • [Spring] JavaConfig(xml을 java로 변경)
    • [Spring] Spring JDBC
    • Spring] update(버전설정 잡기)
    씨네
    씨네
    개발자 씨네가 공부하는 내용을 기록 겸 공유하는 블로그입니다!

    티스토리툴바