JSP와 Servlet을 통해 MVC패턴에 대한 원리를 어느정도 익히고나면, 바로 스프링 프레임워크에 대해 배우기 시작하는데요.
자바 개발자들의 표준과도 같은 스프링은, 동적인 웹사이트를 개발하기 위한 여러가지 서비스를 제공하는 툴입니다,
우리가 기존의 JSP와 서블릿을 나누어 MVC를 구현했는데, 이제 스프링 프레임워크를 사용하면서 좀 더 편하게 개발할 수 있게 됩니다.
스프링의 큰 주요 기능으로는 DI, AOP, MVC, JDBC를 제공한다는 점인데요. 앞으로 차차 배워보도록 하겠습니다.
스프링에 내재되어있는 다양한 모듈을 xml 파일을 이용해서 의존 설정을 해주며 사용하게 되겠습니다.
이클립스를 통해 스프링 개발을 하실 분들은, 메뉴바에서 marketplace를 통해 자신의 버전에 맞는 'STS'를 다운받아서 활용하셔도 되구요.
홈페이지에서 스프링 툴 프로그램을 다운받아 사용하셔도 됩니다.
스프링에서는 pom.xml과 익숙해지도록 합시다. 이 곳에서 버전관리나 의존성 등을 입력해 관리할 것입니다.
Maven 프로젝트를 생성한 후, pom.xml에 어떤 코드들이 들어있나 한번 훑어볼까요?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | <?xml version="1.0" encoding="UTF-8"?> <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 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.spring</groupId> <artifactId>example</artifactId> <name>Example_01</name> <packaging>war</packaging> <version>1.0.0-BUILD-SNAPSHOT</version> <properties> <java-version>1.6</java-version> <org.springframework-version>4.3.6.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 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework-version}</version> <exclusions> <!-- Exclude Commons Logging in favor of SLF4j --> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework-version}</version> </dependency> <!-- AspectJ --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${org.aspectj-version}</version> </dependency> <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${org.slf4j-version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${org.slf4j-version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${org.slf4j-version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.15</version> <exclusions> <exclusion> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> </exclusion> <exclusion> <groupId>javax.jms</groupId> <artifactId>jms</artifactId> </exclusion> <exclusion> <groupId>com.sun.jdmk</groupId> <artifactId>jmxtools</artifactId> </exclusion> <exclusion> <groupId>com.sun.jmx</groupId> <artifactId>jmxri</artifactId> </exclusion> </exclusions> <scope>runtime</scope> </dependency> <!-- @Inject --> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> <!-- Servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- Test --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-eclipse-plugin</artifactId> <version>2.9</version> <configuration> <additionalProjectnatures> <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> </additionalProjectnatures> <additionalBuildcommands> <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> </additionalBuildcommands> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.6</source> <target>1.6</target> <compilerArgument>-Xlint:all</compilerArgument> <showWarnings>true</showWarnings> <showDeprecation>true</showDeprecation> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <mainClass>org.test.int1.Main</mainClass> </configuration> </plugin> </plugins> </build> </project> | cs |
이처럼 프로젝트 안에서 필요한 여러 정보들에 대해서 의존성이나 플러그인들을 저장시켜 놓은 모습을 볼 수 있습니다.
프로젝트를 생성하면 위와 같은 구조로 만들어지게 됩니다. 이 중에서 src/main은 java와 resources 두 가지로 나누어진 모습을 볼 수 있습니다.
우리가 프로젝트를 만들 때 필요한 자바 파일들은 main/java에서 관리하고, xml이나 property 파일 등 자원 관리에 해당하는 파일은 main/resources에서 관리하도록 합시다.
다음에는 의존성 주입(DI)에 대해 알아보도록 하겠습니다.
'스프링(Spring)' 카테고리의 다른 글
Spring Boot 동작 환경 (0) | 2021.03.22 |
---|---|
Vue CLI + Spring Boot 연동하여 환경 구축하기 (1) | 2019.06.30 |
[스프링] 스프링 MVC 흐름도 요약 (0) | 2018.10.31 |
[스프링] 스프링 부트란? (0) | 2018.10.29 |
의존성 주입 - DI(Dependency injection) (1) | 2018.08.10 |