πŸ’»

μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬ - [Spring] Maven λ³Έλ¬Έ

KITRI/SPRING

μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬ - [Spring] Maven

λ˜νš¨λ‹ˆ 2020. 7. 31. 13:25

Maven(메이븐)

 

μ•„νŒŒμΉ˜ 메이븐은 μžλ°”μš© ν”„λ‘œμ νŠΈ 관리 도ꡬ이닀. μ•„νŒŒμΉ˜ μ•€νŠΈμ˜ λŒ€μ•ˆμœΌλ‘œ λ§Œλ“€μ–΄μ‘Œλ‹€. μ•„νŒŒμΉ˜ λΌμ΄μ„ μŠ€λ‘œ λ°°ν¬λ˜λŠ” μ˜€ν”ˆ μ†ŒμŠ€ μ†Œν”„νŠΈμ›¨μ–΄μ΄λ‹€.

 

 

μš°μΈ‘μƒλ‹¨μ˜ open perspective 선택 spring(default) μ„ νƒν•΄μ„œ ν”„λ‘œμ νŠΈ μ—΄κΈ°

open perspective μ•„μ΄μ½˜ 클릭 

 

μƒˆ ν”„λ‘œμ νŠΈ 생성 > New Spring Legacy Project 선택 

μ„ νƒν•˜κ³  Next> λˆŒλŸ¬μ„œ νŒ¨ν‚€μ§€λͺ… μž‘μ„±ν•˜κ³  Finish

 

 

처음 μŠ€ν”„λ§ ν”„λ‘œμ νŠΈ μƒμ„±μ‹œ 쑰금 μ‹œκ°„μ΄ μ†Œμš”λœλ‹€. (ν•˜λ‹¨μ˜ ν”„λ‘œκ·Έλ ˆμŠ€λ°”λ‘œ 진행상황을 λ³Ό 수 μžˆλ‹€.)

ν”„λ‘œμ νŠΈ 생성 μ™„λ£Œ

pom.xml νŒŒμΌμ—μ„œ μ„ΈνŒ…μ„€μ •ν•œλ‹€.

 

https://mvnrepository.com/

 

Maven Repository: Search/Browse/Explore

The AWS SDK for Java - Test Utils module holds the all the utilities that are used by the tests. Last Release on Jul 29, 2020

mvnrepository.com

 

μœ„μ˜ μ‚¬μ΄νŠΈμ—μ„œ JSTL 검색 ν›„ λ‚΄μš©μ„ ν΄λ¦½λ³΄λ“œ 볡사(κ°€μž₯ 많이 λ‹€μš΄λ‘œλ“œ ν•œ 버전을 μ‚¬μš©ν• κ²ƒ)

 

 

μ΄λŸ°μ‹μœΌλ‘œ AOP, AspectJ, CGLib, Spring JDBC... λ“±λ“± λ³΅μ‚¬ν•΄μ„œ λΆ™μ—¬λ„£κΈ°

pom.xml

<?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 https://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.java</groupId>
	<artifactId>homgPage</artifactId>
	<name>06_MavenSpringMVC</name>
	<packaging>war</packaging>
	<version>1.0.0-BUILD-SNAPSHOT</version>
	<properties>
		<java-version>1.6</java-version>
		<org.springframework-version>3.1.1.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>      
		
		<!-- Library μΆ”κ°€ -->
		<!-- JSTL -->
		<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>jstl</artifactId>
		    <version>1.2</version>
		</dependency>
		
		<!-- STANDARD -->
		<!-- https://mvnrepository.com/artifact/taglibs/standard -->
		<dependency>
		    <groupId>taglibs</groupId>
		    <artifactId>standard</artifactId>
		    <version>1.1.2</version>
		</dependency>
		
		
		<!-- AOP -->
		<!-- Oracle -->
		<!-- Download -->
		  
	</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>

 

webapp μ—λŠ” Javscript, CSS 등이 λ“€μ–΄κ°„λ‹€.

viewsμ—λŠ” JSPνŒŒμΌλ“€μ„ λ„£μ–΄μ€€λ‹€.

 

νŒ¨ν‚€μ§€ 생성 후에 java파일 μž‘μ„±ν•˜κΈ°(μ΄μ „μ—ν–ˆλ˜ νšŒμ›κ°€μž… ν”„λ‘œμ νŠΈμ˜ μ½”λ“œλ₯Ό 가지고왔닀)

 

servlet-context.xml λ‘œ κ°€μ„œ μˆ˜μ •ν•΄μ€€λ‹€. naespace둜 κ°€μ„œ aopμΆ”κ°€ν•΄μ€€λ‹€. 

DI, AOP μ„€μ • μΆ”κ°€ 

	<!-- DI -->
	<context:component-scan base-package="com.java..*" />
	
	<!-- AOP -->
	<aop:aspectj-autoproxy/>
</beans:beans>

 

기쑴에 μž‘μ„±ν–ˆλ˜ css, javascript κ²½λ‘œλ•Œλ¬Έμ— resourceλ°–μœΌλ‘œ 뺐닀.

이 κ²½μš°μ—λŠ” resource mapping 섀정이 μΆ”κ°€μ μœΌλ‘œ ν•„μš”ν•˜λ‹€.

<?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"
	xmlns:aop="http://www.springframework.org/schema/aop"
	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
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.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/" />
   	<!-- css -->
	<resources mapping="/css/**" location="/css/" />
   	<!-- javascript -->
    <resources mapping="/javascript/**" location="/javascript/" />
	
	<!-- 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>
	
	<!-- DI -->
	<context:component-scan base-package="com.java..*" />
	
	<!-- AOP -->
	<aop:aspectj-autoproxy/>
</beans:beans>

 

jdbcμ—°κ²° μ„€μ • : ν†°μΊ£ 경둜의 lib에 ojdbc6.jarνŒŒμΌμ„ λ„£μ–΄μ€€λ‹€.

 

λ§ˆμ°¬κ°€μ§€λ‘œ ν΄λ¦½λ³΄λ“œμ— 볡사 -> pom.xml νŒŒμΌμ— λΆ™μ—¬λ„£κΈ°

		<!-- Download / -->
		<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>1.3.2</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
		<dependency>
		    <groupId>commons-fileupload</groupId>
		    <artifactId>commons-fileupload</artifactId>
		    <version>1.3.3</version>
		</dependency>
λ°˜μ‘ν˜•
Comments