Spring Javaconfig

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

Spring JavaConfig

Hibernate, Spring MVC


Key word
• Above Serlvet 3.0
• Hibernate basic
• Spring MVC
• Gradle
Overview
Context <<실행환경>>
Web 컨테이너 Tomcat

<<Presentation>> Spring
Service
Web Jsp,jstl,bootstrap Controller RDBMS
browser HSQLDB
DAO
UrlBasedView Domain Model
<<DataSource>>
Resolver (entity)

Spring IOC
WebInitializer
• Replace web.xml
• set root Context, servlet mapping
WebInitializer

• @Override
• protected Class<?>[] getServletConfigClasses() {
• return new Class[]{WebConfig.class}

• @Override
• protected String[] getServletMappings() {
• return new String[]{"/"};
• }
webConfig set index.html
• @Bean
• public UrlBasedViewResolver setupViewResolver() {
• UrlBasedViewResolver resolver = new UrlBasedViewResolver();
• resolver.setPrefix("/WEB-INF/views/");
• resolver.setSuffix(".jsp");
• resolver.setViewClass(JstlView.class);
• return resolver;
• }
webConfig set index.html 2
• 기본 페이지처럼 로직이 필요없는 경우에는 별도의 컨트롤러를 생성하지
않고 처리가능
• @Override
• public void
addViewControllers( org.springframework.web.servlet.config.annotation.Vie
wControllerRegistry registry){
registry.addViewController("/").setViewName("home");
}

정적 리소스(css,js,img) 등록처리
• @Override
• public void addResourceHandlers( ResourceHandlerRegistry
registry){
• registry.addResourceHandler("/resources/**")
• .addResourceLocations("/WEB-INF/resources/");
• }
정적 리소스(css,js,img) 등록처리
• <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
• <c:url value=“/resources/xxx.js”>
디폴트 서블릿 설정 등록
• DispatachServlet이 처리할 수 없는 나머지 요청을 기본 서블릿 설정으로 처

• @Override
• public void
configureDefaultServletHandling(DefaultServletHandlerConfigurer
configurer) {
• configurer.enable();
• }
Hibernate Config #1
WebInitializer
protected Class<?>[] getRootConfigClasses() {
• return new Class[]{DbConfig.class};
• }
Hibernate Config #2
• Hibernate property
• hibernate.dialect=org.hibernate.dialect.HSQLDialect 사용할 DB dialect
• hibernate.show_sql=true
• hibernate.format_sql=false
• hibernate.hbm2ddl.auto=create-drop
• entitymanager.packages.to.scan=entity POJO 패키지 위치
Hibernate Config #3
• Hibernate SessionFactory 설정
• @Bean
• public LocalSessionFactoryBean sessionFactory() {
• LocalSessionFactoryBean생성
• dataSource, hibernate property setting
• Scan할 패키지 등록
• }
Hibernate Config #4
• Transaction 설정
• @Bean
• public HibernateTransactionManager transactionManager() {
• HibernateTransactionManager transactionManager = new
HibernateTransactionManager();
• transactionManager.setSessionFactory(sessionFactory().getObject());
• return transactionManager;
• }
HSQLDB 설정
• db.driver =org.hsqldb.jdbc.JDBCDriver
• db.url = jdbc:hsqldb:mem:spring
• db.username = sa
• db.password=
Entity설정
• @Entity
• Class명과 table이 다른 경우 @Table( name =“테이블명”)
Crud #1 현재 세션 획득
• @Autowired
• private SessionFactory sessionFactory;

• private Session getCurrentSession() {


• return sessionFactory.getCurrentSession();
• }
Crud #2 Create
• getCurrentSession().save( Entity Object );
Crud #3 Update
Id값을 이용해서 목록에서 Update할 객체정보 획득
UpdateInstance = getCurrentSession().get(EntityClass, id);

Update
• getCurrentSession().update(UpdateInstance );
Crud #4 delete

• deleteInstance= getCurrentSession().get(EntityClass, id);

• getCurrentSession().delete(deleteInstance);
목록 조회
• getCurrentSession().createQuery("from 테이블명").list();
Rest API 설정 #1
설정등록
• @Override
• protected Class<?>[] getServletConfigClasses() {
• return new Class[]{WebConfig.class, RestConfig.class};
• }
Rest API 설정 #2
• Jason Converter 등록
• public void
configureMessageConverters(List<HttpMessageConverter<?>>
converters){
• converters.add(mappingJackson2HttpMessageConverter());

• }
Rest Controller
• ResponseBody사용
• @RequestMapping(method = RequestMethod.GET)
• @ResponseBody
• public List<Team> getList(){
• 결과 반환
• }
Source Repository
• https://github.com/sjyun/gradlespring

You might also like