DeseoDeSeo
[Spring] MVC004 실습 세팅 본문
xml파일을 삭제하고 class파일로 대체함.
webConfig.java
package kr.spring.config;
import javax.servlet.Filter;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
// Web.xml의 기능을 담고 있는 클래스를 상속 받는다
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
// web.xml을 대체할 java class
@Override
protected Class<?>[] getRootConfigClasses() {
// DB 설정관련 RootConfig.java 파일을 가져온다
// 리턴타입은 Class의 배열 형태이다
// 왜냐하면 나중에 설정파일이 여러개 추가할 수 있기 때문에
return new Class[] {RootConfig.class};
}
@Override
protected Filter[] getServletFilters() {
// 인코딩 설정하는 부분
CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
encodingFilter.setEncoding("UTF-8");
encodingFilter.setForceEncoding(true);
return new Filter[] {encodingFilter};
}
@Override
protected Class<?>[] getServletConfigClasses() {
// Servlet 설정 관련 있는 ServletConfig.java 파일을 가져온다
return new Class[] {ServletConfig.class};
}
@Override
protected String[] getServletMappings() {
// TODO Auto-generated method stub
return new String[] {"/"};
}
}
RootConfig.java
package kr.spring.config;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
@Configuration
@MapperScan(basePackages = {"kr.spring.mapper"}) // Mapper Interface 메모리 올리기위해 경로설정
@PropertySource({"classpath:persistence-mysql.properties"})
public class RootConfig {
// root-context.xml을 대체할 클래스
@Autowired
Environment env; // 내가 만든 properties 파일을 읽어오는 객체
@Bean // 메모리에 사용할 수 있게 로딩하는 어노테이션
public DataSource myDataSources() {
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName(env.getProperty("jdbc.driver"));
hikariConfig.setJdbcUrl(env.getProperty("jdbc.url"));
hikariConfig.setUsername(env.getProperty("jdbc.user"));
hikariConfig.setPassword(env.getProperty("jdbc.password"));
HikariDataSource myDataSource = new HikariDataSource(hikariConfig);
return myDataSource;
}
@Bean
public SqlSessionFactory sessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(myDataSources());
return (SqlSessionFactory) sessionFactory.getObject();
}
}
ServletConfig.java
package kr.spring.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import lombok.extern.apachecommons.CommonsLog;
@EnableWebMvc // config java 클래스가 Spring mvc 구조상에서 작동하기 위한 어노테이션
@Configuration // WebConfig에서 설정파일로 인식될 수 있게 달아주는 어노테이션
@ComponentScan(basePackages = {"kr.spring.controller"}) // controller 패키지가 여러개일시 추가 해주면된다
public class ServletConfig implements WebMvcConfigurer{ // servlet-context.xml의 기능을 가지고 있는 interface
// servlet-context.xml을 대체할 클래스
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
// servlect-context.xml에 있던 ViewResolver 설정부분
InternalResourceViewResolver bean = new InternalResourceViewResolver();
bean.setPrefix("/WEB-INF/views/");
bean.setSuffix(".jsp");
registry.viewResolver(bean);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
}
persistence-mysql.properties
➜ src/main/resources 폴더안. 일반 file로 생성
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/com
jdbc.user=com
jdbc.password=com01
'spring' 카테고리의 다른 글
[Spring] (보안1)db의 회원 비밀번호 보안 설정하기 (0) | 2023.09.25 |
---|---|
[Spring] (보안2)내 정보 수정에서 권한 수정하기 & 회원가입 시, 비밀번호암호 (0) | 2023.09.25 |
[Spring] 해당 글 작성자만 수정, 삭제 가능 기능 (0) | 2023.09.21 |
[Spring] 파일 업로드 및 프로필 사진 출력하기 (0) | 2023.09.20 |
[Spring] 회원정보 수정 및 메인 페이지에 탭 추가 (2) | 2023.09.19 |