zoukankan      html  css  js  c++  java
  • spring整合mybatis,springMVC的0配置文件方式

      0配置文件的形式主要是采用spring3.0提供的@configuration注解和spring容器在启动的时候会加载实现了WebApplicationInitializer的类,并调用其onStartUp的方法的特性去实现.

      具体做法如下:

      1.建立MyWebAppInitializer去实现WebApplicationInitializer接口,并且去重写其onStartUp方法.实际上这个类取代了web.xml的配置.代码如下:

    public class MyWebAppInitializer implements WebApplicationInitializer{
    
        @Override
        public void onStartup(ServletContext servletContext) throws ServletException {
            //相当于在web.xml在配置spring启动用的ContextLoaderListener
            AnnotationConfigWebApplicationContext rootContext=new AnnotationConfigWebApplicationContext();
            rootContext.register(AppConfig.class);
            servletContext.addListener(new ContextLoaderListener(rootContext));
            //相当于在web.xml在配置DispatcherServlet
            AnnotationConfigWebApplicationContext webContext=new AnnotationConfigWebApplicationContext();
            webContext.register(WebConfig.class);
            Dynamic registration = servletContext.addServlet("dispatcher",new DispatcherServlet(webContext));
            registration.setLoadOnStartup(1);
            registration.addMapping("/");
        }
    
    }

      2.建立WebConfig.class.这个类用于取代spring的配置文件springmvc.xml.代码如下:相关注解的解释写在注释中.

    @EnableWebMvc        //开启springmvc的配置
    @Configuration        //开启基于Java类的配置
    @ComponentScan(basePackages="com.xyy.web")
    public class WebConfig extends WebMvcConfigurerAdapter{
        //配置与dispatcherServlet相关联的bean
        @Bean//代表这是一个bean.spring容器会将其放在容器中.
        public ViewResolver viewResolver() {
            InternalResourceViewResolver resolver=new InternalResourceViewResolver();
            resolver.setPrefix("/");
            resolver.setSuffix(".jsp");
            resolver.setExposeContextBeansAsAttributes(true);//使得可以在jsp页面中可以通过${}访问bean
            return resolver;
        }
        //开启静态文件的访问.
        @Override
        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
            configurer.enable();
        }
        
    }

      3.建立AppConfig.class.它用于取代applicationContext.xml.这里我们使用了c3p0数据库连接池配合mybatis框架使用

    @EnableAspectJAutoProxy//开启自动注解扫描
    @EnableTransactionManagement//配置事务管理
    @Configuration
    @ComponentScan(basePackages="com.xyy")//扫描注解
    public class AppConfig {
        //配置c3p0数据源
        @Bean
        public DataSource dataSource() {
            ComboPooledDataSource dataSource=new ComboPooledDataSource();
            try {
                dataSource.setDriverClass("com.mysql.jdbc.Driver");
            } catch (PropertyVetoException e) {
                e.printStackTrace();
            }
            dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
            dataSource.setUser("root");
            dataSource.setPassword("root");
            return dataSource;
        }
        //配置SqlSessionFactoryBean
        @Bean
        public SqlSessionFactoryBean sqlSessionFactory() {
            SqlSessionFactoryBean bean=new SqlSessionFactoryBean();
            bean.setConfigLocation(new ClassPathResource("SqlMapConfig.xml"));
            bean.setDataSource(dataSource());
            return bean;
        }
        //配置开启Mapper扫描
        @Bean
        public MapperScannerConfigurer mapperScannerConfigurer() {
            MapperScannerConfigurer configurer=new MapperScannerConfigurer();
            configurer.setBasePackage("com.xyy.mapper");
            return configurer;
        }
        //配置开启DataSourceTransactionManager
        @Bean
        public DataSourceTransactionManager dataSourceTransactionManager() {
            DataSourceTransactionManager manager=new DataSourceTransactionManager();
            manager.setDataSource(dataSource());
            return manager;
        }
    }

      4.至此,我们就可以正常的建立Controller类书写代码了.不过,不要忘记在对应的类上加上@controller,@service,@repository哦.

      5.此外,为了防止会出现乱码的情况,我们最好再配上spring提供的CharacterEncodingFilter去解决乱码问题.方式如下,也是在MyWebAppInitializer类中配置的:

      

  • 相关阅读:
    直播流RTMP 知识
    XSSearch 说明文档保存
    网海茫茫,有你最暖
    实践中 XunSearch(讯搜)更新索引方案对比
    实践中 XunSearch(讯搜)的使用教程步骤
    留的住的叫幸福,流逝的叫遗憾
    百度API ; 很多有用的接口及公用 数据
    ecshop 模板开发总结
    jquery库和cityselect插 件的省市 级联
    PHP Excel 下载数据,并分页下载
  • 原文地址:https://www.cnblogs.com/hlhdidi/p/6289060.html
Copyright © 2011-2022 走看看