Window - Eclipse Marketplace - sts ๊ฒ์
์๋ก์ด Spring ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.
ํ๋ก์ ํธ ์ค๋ฅธ์ชฝ ํด๋ฆญ - properties - Project Facets
์ ์ฉํด์ฃผ์๊ณ , pon.xml ๋ค์ด๊ฐ๋๋ค.
์ฒดํฌํ ๋ถ๋ถ ๋ณ๊ฒฝ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์คํฌ๋กค ๋ฐ์ผ๋ก ์ญ ๋ด๋ ค์ plugin๋ ๋ฐ๊ฟ์ค๊ฒ์~
์ด๋ ๊ฒ ํ๊ณ ์ ์ฅํ๋ฉด ๋ฉ์ด๋ธ์ด ์ด์ฌํ ๋ค์ด๋ก๋ํฉ๋๋ค.
์ด์ ๋ง๋ฐํฐ์ค, ์คํ๋ง ์ฐ๊ฒฐ ๊ด๋ จ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด๋ก๋ํ๊ณ ์ค์ ํด ์ค๊ฒ์.
์ผ๋จ, ์ ๋ spring ์ค์ ํ์ผ์ ํ ๋ฒ์ ๋ณด๊ณ ์ถ๊ธฐ ๋๋ฌธ์ web.xml ์์
์ด ๋ถ๋ถ์ ํด๋์ ๋ฃ์ด ์ฃผ์์ด์ ๊ทธ๋ฌ๋ฉด ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๊ฐ์ด ๊ด๋ฆฌํ ์ ์์ต๋๋ค!
๊ทธ๋ฆฌ๊ณ ์ค์ํ๊ฒ์ filter๋ฅผ ์ด์ฉํด์ ์ธ์ฝ๋ฉ์ ํด์ค๋๋ค.
web.xml์ ์์ฑํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
|
cs |
์ด์ pom.xml์์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ ๊ฒ์!
MyBatis ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํด ์ค๋๋ค. ๊ณตํต์ ์ผ๋ก ๋ค์ด๊ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
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
|
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- Spring-orm -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Mybatis-Spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- dbcp -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- ojdbc6.jar -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
|
cs |
์ฌ์ฉํ๋ DB์ ๋ฐ๋ผ ์ถ๊ฐ๋๋ ํผ์ด ํ๋ ๋ ์๋๋ฐ
ojbc์ ๊ฒฝ์ฐ Maven์์ ์ ๊ณตํ์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ์ค์ ํด์ค์ผ ํ๋ ๊ฒ ์๊ธฐ ๋๋ฌธ์
Oracle์ ์ฌ์ฉํด๋ณผ๊ฒ์!
roepositories๋ properties ๋ฐ๋ก ๋ฐ์ ์์ฑํด์ฃผ์ ์ผ ๋ผ์ ๊ทธ๋์ผ ๋ฐ์ ์๋ ojdbc๋ฅผ
Maven์ด ๋ค์ด๋ก๋ ์ค์นํ ์ ์์ด์!
1
2
3
4
5
6
|
<repositories>
<repository>
<id>codelds</id>
<url>http://code.lds.org/nexus/content/groups/main-repo</url>
</repository>
</repositories>
|
cs |
DB์ ๋ณด ์ ์ธํด์ฃผ๋ properties๋ฅผ ๋ง๋ค์ด ์ค๊ฒ์.
src - main - resources์ ์ค๋ฅธ์ชฝ ํด๋ฆญ - File
์ด๋ฆ์ db.properties๋ก ํ๊ฒ ์ต๋๋ค.
1
2
3
4
|
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:XE
user=
pw=
|
cs |
์ ์ ์์ด๋, ๋น๋ฐ๋ฒํธ๋ Oracle ์์ด๋, ๋น๋ฐ๋ฒํธ ์จ์ฃผ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ DB์ Mybatis๋ฅผ ์ฐ๊ฒฐํด์ค ์ค์ ํ์ผ์ ๋ง๋ค์ด์ค๋๋ค.
src - main- webapp - WEB-INF์ sqlsํ์ผ์ ๋ง๋ค์ด์ฃผ๊ณ ๊ทธ ์์ Configuration.xml์ ๋ง๋ค์ด ์ค๋๋ค.
์ดํด๋ฆฝ์ค ๋ง์ผ์์ Mybatis๋ฅผ ์ถ๊ฐํ๋ค๋ฉด Mapper๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค. (๊ทธ ์ ์๋ DTD๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋ฐ๋ ๊ฑฐ ๊ฐ๋ค)
ํ์ง๋ง, ์ด๊ฑด mapper๊ณ , ์ ์ผ ๋จผ์ ๋ง๋ค ๊ฒ์ Configuration์ด๊ธฐ ๋๋ฌธ์
mapper๋ก ์ ์๋์ด ์๋ ๋ถ๋ถ์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ฐ๊ฟ์ฃผ๋ฉด ๋ฉ๋๋ค!
์ง๊ธ๊น์ง ๋ง๋ ํ์ผ๋ค์ ์ค์ ํด์ค ๊ฒ๋๋ค.
์ฐ์ spring ํด๋์ ์๋ root-context๋ฅผ ๋ณ๊ฒฝํด์ค ๊ฒ๋๋ค.
root์ servlet์ ์ฐจ์ด๋
root๋ ๊ณตํต ๋น์ ์ค์ ํด์ฃผ๋ ๊ณณ์ผ๋ก view๋ vean์ ์ค์ ํฉ๋๋ค. db, log ๋ฑ๋ฑ
servlet์ Dispatcher์๋ธ๋ฆฟ๊ณผ ๊ด๋ จ๋ ์ค์ ์ ํ๋ ๊ณณ์ด๋ค.
appServlet์ ํ ๋ฒ์ ๊ด๋ฆฌํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ web.xml์์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์คฌ์ต๋๋ค.
์ ๋ root๋ณด๋ค applicationContext๊ฐ ์ต์ํด์ ํ์ผ๋ช ๋ ๋ฐ๊ฟ์ฃผ์์ต๋๋ค.
ํ์ผ ์์ ์๋ฌด๊ฒ๋ ์๋๋ฐ
OJDBC6, MyBatis3.x, Srping-orm, mybatis-Spring, Commoms-dbcp ์ค์ ํด์ค๊ฒ์
๊ทธ์ ์ ๋ฐฉ๊ธ ์ ๋ง๋ db.properties๋ฅผ ์ค์ ํด์ค๋๋ค.
์๋์์ฑ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ class ์ ๊ณ Property๋จผ์ ์ฐ์๊ณ ์๋์์ฑํค๋ฅผ ๋๋ฅด๋ฉด ๋ชฉ๋ก์ด ๋์ต๋๋ค.
PropertyPlaceholderConfigurerํด๋์ค๋ฅผ ๋น์ผ๋ก ๋ฑ๋กํ๋ฉด ์ธ๋ถ ํ๋กํผํฐ๋ฅผ ์คํ๋ง ์ค์ ํ์ผ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
1
2
3
4
5
6
7
8
|
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:db.properties</value>
</list>
</property>
</bean>
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${user}" />
<property name="password" value="${pw}" />
</bean>
<bean class="org.mybatis.spring.SqlSessionFactoryBean"
id="sqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation"
value="/WEB-INF/sqls/Configuration.xml"></property>
</bean>
<bean class="org.mybatis.spring.SqlSessionTemplate"
id="sqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactoryBean"></constructor-arg>
</bean>
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
id="dataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
|
cs |
1. BasicDataSource
DB์ ์ฐ๊ฒฐํด์ค ๋๋ผ์ด๋ธ, url, ์์ด๋, ๋น๋ฐ๋ฒํธ ์ฐ๊ฒฐํด์ค ๊ฒ์ ๋๋ค. ์์์ ์คํ๋ง ์ค์ ํ์ผ์์ ๊ฐ์ง๊ณ ์จ
db.properties์์ elํํ์์ผ๋ก ๋งตํ์ด ๋ ๊ฒ์ ๋๋ค.
๋ง์ฝ ์ฐ๊ฒฐ์ด ์์ ๋์์ ๋ db.properties์์ ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค.
2.SqlSessionFactoryBean
Mybatis์ DB๋ฅผ ์ฐ๊ฒฐ์์ผ์ค๋๋ค. ์ค์ง์ ์ผ๋ก SqlSessionFactory๋ผ๋ ๊ฐ์ฒด๊ฐ ์ด ์ญํ ์ ํฉ๋๋ค.
DB์ ์ฐ๊ฒฐํด์ค ๊ฒ์ด๊ธฐ ๋๋ฌธ์ property๋ก dataSource๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
3.SqlSessionTemplate
SqlSeesion์ ๊ตฌํํ๊ณ ๊ทธ ์ฝ๋์์ ๋์ฒดํ๋ ์ญํ ์ ํฉ๋๋ค.
์ค๋ ๋์ ์์ ํ๊ธฐ ๋๋ฌธ์ DAO๋ ๋งคํผ ์ฌ๋ฌ ๊ฐ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
(Configuration์์ ์์ฑํ ๋งคํผ๋ค)
4.DataSourceTransactionManager
Mybatis๊ฐ ์คํ๋ง ํธ๋์ญ์ ์ ์ฐ๋ํ๋ค.
์ด๋sqlSessionFactoryBean์ ์์ฑํ ๋ ์ฌ์ฉ๋ ๊ฒ๊ณผ ๋ฐ๋์ ๋์ผํ ๊ฒ์ด์ด์ผ ํฉ๋๋ค.
์ด์ Configuration์ ์์ฑํ mappers์ ๋ง๋ค์ด ์ค๊ฒ์!
src - main - resources์ sqlsํด๋๋ฅผ ๋ง๋ค๊ณ xmlํ์ผ์ ๋ง๋ค์ด์ค๋๋ค.
๋ค์์คํ์ด์ค ์ค์ ํด์ฃผ๊ณ , ์ฟผ๋ฆฌ ์์ฑํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ด mapper๋ฅผ bean์ด DB์ ์ฐ๊ฒฐ์์ผ์ฃผ๊ธฐ ์ํด Configuration.xml ์ ์๋์ ๊ฐ์ด ์์ฑํฉ๋๋ค.
์ด๊ณณ์์ Aliases๋ฅผ ์ ํด์ค ์๋ ์์ต๋๋ค.
์ฌ๊ธฐ๊น์ง ๊ธฐ๋ณธ Spring ๊ธฐ๋ณธ ์ ํ ์ ๋๋ค.
์ค๋ช ์ด ๋ถ์กฑํ ๋ถ๋ถ์ด๋ ํ๋ฆฐ ๋ถ๋ถ์ ์กฐ๊ธ์ฉ ์์ ํ๊ฒ ์ต๋๋ค!
'๐ WEB > SETTING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Eclipse Maven Setting ์ค์น๋ถํฐ ์ค์ ๊น์ง (0) | 2020.06.01 |
---|---|
์ดํด๋ฆฝ์ค ๋ง์ผ ์คํ ์๋ ๋ (0) | 2019.09.17 |