스프링(Spring) #1

jjinny_0609·2023년 3월 27일
0

Spring

목록 보기
1/6

스프링(Spring)

자바 언어를 기반으로 한 오픈소스 프레임워크입니다. 스프링은 자바 엔터프라이즈 개발에 필요한 기능을 제공하며, IoC(Inversion of Control) 컨테이너와 AOP(Aspect Oriented Programming) 등의 기능을 포함하고 있습니다. 스프링을 사용하면 자바 언어로 웹 어플리케이션을 개발할 때 많은 부분을 자동화할 수 있습니다.

스프링은 다양한 모듈로 구성되어 있으며, 각 모듈은 다음과 같은 기능을 제공합니다.

  1. 스프링 컨테이너: 객체의 생명주기를 관리하는 IoC 컨테이너를 제공합니다.
  2. 스프링 MVC: 웹 어플리케이션을 개발하기 위한 MVC 패턴을 구현하는 기능을 제공합니다.
  3. 스프링 데이터: 데이터베이스 연동을 쉽게 할 수 있는 기능을 제공합니다.
  4. 스프링 시큐리티: 인증과 권한을 관리하는 보안 기능을 제공합니다.
  5. 스프링 부트: 스프링 어플리케이션을 빠르고 쉽게 개발할 수 있도록 도와주는 기능을 제공합니다.

스프링의 주요 특징은 다음과 같습니다.

  1. 경량성: 스프링은 경량 프레임워크로서 불필요한 기능이나 라이브러리를 배제하여 빠르고 가벼운 어플리케이션을 구현할 수 있습니다.
  2. 모듈성: 스프링은 다양한 모듈로 구성되어 있어 필요한 기능만 사용할 수 있습니다.
  3. 유연성: 스프링은 객체 지향적인 개발 방식을 지원하며, 다양한 라이브러리와 연동하여 사용할 수 있습니다.
  4. 테스트 지원: 스프링은 자동화된 테스트 환경을 제공하여 개발 및 테스트를 용이하게 할 수 있습니다.

따라서, 스프링은 자바 언어로 웹 어플리케이션을 개발하기 위한 필수적인 기술 중 하나로, 많은 개발자들이 사용하고 있습니다.

스프링 설치방법

※ 자바가 설치되어 있어야함.

  • 스프링 설치방법 두가지
    Eclipse or STS

  • Eclipse
    STS 플로그인 추가 설치 후 사용

  • STS
    Eclipse와 별도로 다운로드 및 압축 해제

설치 진행

About Eclipse IDE(버전 확인)

관리자 권한으로 이클립스 재실행후 설치 진행
현재 버전 확인(4.8)

Help - Install New Software...

Add... - Add Repository 아래 스크린샷과 같이 작성 후 Add

name은 본인이 임의로 작성
Location에 복사해서 넣기

http://download.springsource.com/release/TOOLS/update/e4.8

Select All - Next >

Next를 누르면 설치가 진행된다.

동의후 Finish

하단에 Installing Software 설치되고 있다고 알려줌.

어쨋든 설치 클릭

Select All 후

Restart Now 클릭 하면 재시작하면서 설치가 완료된다.

설치가 완료된 모습


스프링 예제파일 추가하기

File - Open Projects from File System... 클릭

Directory... 클릭

Spring 예제 파일을 추가

파일이 추가된 것을 확인할 수 있다.


Spring 예제 폴더 설명

main : 구현하는 곳

  • test : 테스트 하는 곳(없어도 됨)\
  • views : 사용자에게 보여주는 부분(.jsp 파일을 저장)

resources

  • META-INF : Java Archive(JAR) 파일, Java Web Archive(WAR) 파일, Java Enterprise Archive(EAR) 파일 등 Java 애플리케이션에서 사용되는 압축 파일들의 메타 데이터를 포함하는 특별한 폴더입니다.

src/main/java/org/hj/controller : controller가 있는 위치 controller는 진입점

src/main/java/org/hj/model : model의 위치

MVC패턴을 사용해 업무분담을 위해서 위와 같이 폴더를 구성하고 사용한다.

Spring Legacy Project

스프링 프로젝트 생성
File-New-Spring Legacy Project

프로젝트명 작성(팀으로 작업하는 경우 프로젝트 명을 통일시켜줘야 한다.),
현재는 projectEx로 예제를 보는 중

패키지명 생성
ex) org.hj.controller

만들게 되면 아래와 같이 생성된다.

기본적으로 HomeController.java가 생성되며,

패키지를 더 만들어서 작업이 필요하다면 생성하는 것도 가능하다.


스프링에서 실행하기

Controller(진입점)을 반드시 거쳐서 실행해야한다.

프로젝트를 선택후 우클릭 Run As - Run On Server

Next

아래와 같은 화면이 나타날것이다.

실행할 작업영역을 ADD를 누르거나 더블클릭으로 오른쪽으로 이동시켜주자.

실행했을때 다음과 같은 오류가 발생한다면

src/main/webapp/WEB-INF/spring/root-context.xml 파일 실행

url 경로와 Username과 password를 확인해주자

확인했다면 수정하고 저장

그래도 오류가 터진다면
C:\Users\GR.m2\repository
경로에 있는 파일을 다 지워주고 이클립스 재시작하면 파일을 자동으로 다시 받게된다.

jstl을 workspace에 넣고 Maven update(갱신)를 해주자

마지막으로 Clean눌러주고


http://localhost:8080/서버이름(도메인)
더블클릭

Edit을 눌러서 Path를 수정할 수 있습니다.


/ 만 넣어서 localhost:8080 으로 변경 , localhost:8080뒤만 수정 할 수 있다.


servlet-context.xml // 서버 역할을 하는 파일
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:beans="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

	<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
	
	<!-- Enables the Spring MVC @Controller programming model -->
	<annotation-driven />

	<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
	<resources mapping="/resources/**" location="/resources/" />

	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/views/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean>
	
	<context:component-scan base-package="org.hj.controller" />
	
	<beans:bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
	</beans:bean>

</beans:beans>

Controller 와 jsp의 관계

Controller는 Spring MVC에서 요청을 받아들이고, 처리할 Service와 DAO를 호출한 후, 결과를 Model에 담아 View에 전달하는 역할을 합니다. View는 일반적으로 JSP 페이지로 구성되며, Controller가 전달한 Model 객체의 데이터를 화면에 표시합니다.

따라서, Controller와 JSP는 서로 밀접한 관계가 있습니다. Controller는 사용자가 요청한 URI를 분석하고, 해당 요청을 처리하기 위한 비즈니스 로직을 실행한 후, 결과를 Model에 담아 JSP에 전달합니다. JSP는 Model 객체의 데이터를 화면에 표시하고, 사용자에게 결과를 제공합니다.

이러한 관계에서, JSP는 HTML과 Java 코드를 함께 사용할 수 있는 동적인 페이지로 작성됩니다. JSP는 HTML과 같은 정적인 페이지와 달리, Java 코드를 사용하여 동적으로 데이터를 생성하고, 화면에 표시할 수 있습니다. JSP는 일반적으로 View를 담당하는 역할을 하지만, Controller와 Model 객체와 함께 작동하여 전체 Spring MVC 애플리케이션에서 중요한 역할을 합니다.

즉, Controller와 JSP는 Spring MVC에서 함께 동작하여 사용자의 요청을 처리하고, 데이터를 화면에 표시하는 데 중요한 역할을 합니다. 이를 통해 사용자가 애플리케이션을 사용하는 데 있어서 좀 더 직관적이고 편리한 환경을 제공할 수 있습니다.


Spring MVC에서 URL 규칙

Spring MVC에서 URL 규칙은 일반적으로 다음과 같습니다.

요청 URL이 들어오면, DispatcherServlet이 해당 요청을 처리합니다.

DispatcherServlet은 HandlerMapping을 사용하여 적절한 Controller를 찾습니다.

Controller는 요청을 처리하고, 결과를 Model 객체에 담아 View 이름을 반환합니다.

DispatcherServlet은 ViewResolver를 사용하여 View를 찾습니다.

View는 Model 객체를 사용하여 요청 결과를 생성하고, 클라이언트에게 전송합니다.

URL 규칙은 다음과 같이 정의될 수 있습니다.

요청 URL은 일반적으로 다음과 같은 형식으로 구성됩니다.

http://<hostname>:<port>/<context>/<servlet>/<path>

context는 애플리케이션 이름이며, web.xml 파일에서 설정할 수 있습니다.

servlet은 DispatcherServlet의 이름이며, web.xml 파일에서 설정할 수 있습니다.

path는 Controller에서 처리할 요청 경로입니다. 예를 들어, /board/list는 BoardController에서 list() 메서드를 호출하여 요청을 처리합니다.

Controller에서 반환하는 View 이름은 일반적으로 다음과 같은 형식으로 구성됩니다.

<prefix><viewName><suffix>

prefix는 ViewResolver에서 사용하는 접두어입니다. 일반적으로 "/WEB-INF/views/"를 사용합니다.

viewName은 Controller에서 반환하는 View 이름입니다.

suffix는 ViewResolver에서 사용하는 접미어입니다. 일반적으로 ".jsp"를 사용합니다.

예를 들어, "/board/list"라는 요청 URL이 들어오면, DispatcherServlet은 BoardController의 list() 메서드를 호출하여 요청을 처리합니다. list() 메서드는 Model 객체에 게시글 목록을 저장하고, "board/list"라는 View 이름을 반환합니다. DispatcherServlet은 ViewResolver를 사용하여 "/WEB-INF/views/board/list.jsp"를 찾고, 이를 사용하여 요청 결과를 생성합니다.

[예제]

실제 실행되는 파일은 빨간색 밑줄로 표시했습니다.


pom.xml에 작성되는 코드는 본인이 임의로 작성하지말고 아래의 링크에서 필요한것만 가져와서 복사해서 사용하면 된다.

https://mvnrepository.com/ 으로 접속

mysql에 필요한 한것이 있다면 mysql로 검색

해당하는 버전클릭후 아래의 Maven을 복사해서 코드를 붙여넣자

profile
뉴비 개발자 입니다. velog 주소 : https://velog.io/@jjinny_0609 Github 주소 :

0개의 댓글