728x90
코드로 배우는 스프링 웹 프로젝트[개정판] https://cafe.naver.com/gugucoding
1. 개발환경설정
- 기본설정 @eclipse
//UTF-8 설정 Window > Preferences > General > Workspace => Text file encoding 'UTF-8'으로 변경 Window > Preferences > Web => HTML, CSS, JSP Create files 'UTF-8'으로 변경
//STS 설정
Help > Install New Software.. > Name & Location 경로는 찾아보기.
//Tomcat 설정
Tomcat 다운로드 및 설치
//스프링 프로젝트 생성
Spring Legacy Project > Spring MVC Project 생성
//프로젝트 생성시 에러나면 .m2 > repository 폴더 삭제 후 이클립스 재시작
- 스프링 구조
ex00/
│ Deployment Descriptor. ex00
│ Spring Elements
│ JAX-WS Web Services
└── Java Resource/
│ │ src/main/java => 작성되는 코드의 경로
│ │ src/main/resource => 실행할 때 참고하는 기본 경로(주로 설정파일)
│ │ src/test/java => 테스트 코드 넣는 경로
│ │ src/test/resource => 테스트 관련 설정파일 보관 경로
│ └── Libraries
│ JavaScript Resources
│ Deployed Resources
└── src/
│ └── main/
│ │ │ java
│ │ │ resources
│ │ └── webapp
│ │ │ resources
│ │ └── WEB-INF
│ │ │ clases
│ │ │ spring
│ │ │ │ appServlet
│ │ │ │ └── servlet-context.xml => 웹과 관련된 스프링 설정 파일
│ │ │ └── root-context.xml => 스프링 설정 파일
│ │ │ views => 템플릿 프로젝트의 jsp 파일 경로
│ │ │ └── home.jsp
│ │ └── web.xml => tomcat의 web.xml 파일
│ └── test
└── target
└── pom.xml => Maven이 사용하는 pom.xml
- Configuration: 2 versions(xml/java) 버전 변경 및 설정 추가
//pom.xml
// 스프링 프레임워크 버전은 3.1.1로 생성되므로 예제는 5.0.7 버전으로 수정
// pom.xml 변경 이후 Maven > Update Projecct & Maven Dependencies 항목 변경되었는지 체크
<name>ex00</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>5.0.7.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
- java Configuration의 경우
<!-- web.xml/spring폴더(root-context.xml,servlet-context.xml) 삭제-->
<!-- java Config 사용시 pom.xml 수정-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
1.8
5.0.7.RELEASE
- RootConfig 클래스 (Part5 포함 버전)
@Configuration
@ComponentScan(basePackages = {"org.zerock.service"})
@ComponentScan(basePackages = {"org.zerock.aop"}) //part5
@EnableAspectJAutoProxy //part5
//@EnableAspectautoProxy(proxyTargetClass=true) //part5
@EnableTransactionManagement //part5
@MapperScan(basePackages = {"org.zerock.mapper"})
public class RootConfig {
@Bean
public DataSource dataSource() {
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("net.sf.log4jdbc.sql.jdbcapi.DriverSpy");
hikariConfig.setJdbcUrl("jdbc:log4jdbc:oracle:thin:@localhost:1521:xe");
hikariConfig.setUsername("book_ex");
hikariConfig.setPassword("book_ex");
HikariDataSource dataSource = new HikariDataSource(hikariConfig);
return dataSource;
}
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource());
return (SqlSessionFactory)sqlSessionFactory.getObject();
}
//part5
@Bean
public DataSourceTransactionManager txManager() {
return new DataSourceTransactionManager(dataSource());
}
}
- WebConfig 클래스
@Configuration
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {ServletConfig.class}; //Part1에서는 사용안함 (Web 연결시부터 사용)
}
@Override
protected String[] getServletMappings() {
return new String[] {"/"}; //Part1에서는 사용안함 (Web 연결시부터 사용)
}
@Override
protected void customizeRegistration(ServletRegistration.Dynamic
registration) { registration.setInitParameter("throwExceptionIfNoHandlerFound", "true"); }
728x90
728x90
'Spring' 카테고리의 다른 글
Spring - Part1-2 스프링의 특징과 의존성 주입 (0) | 2022.01.10 |
---|