关于整合基于注解的SSM框架小结(下)

简介: 关于整合基于注解的SSM框架小结

在src/main/java下,创建SpringConfig类,用于读取以上配置信息:


package cn.tedu.ssm;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.io.Resource;
@Configuration
@PropertySource("classpath:application.properties")
public class SpringConfig {
  @Value("${datasource.url}")
  private String url;
  @Value("${datasource.driver-class-name}")
  private String driverClassName;
  @Value("${datasource.username}")
  private String username;
  @Value("${datasource.password}")
  private String password;
  @Value("${datasource.initialSize}")
  private Integer initialSize;
  @Value("${datasource.maxTotal}")
  private Integer maxTotal;
  @Value("${mybatis.mapper-locations}")
  private Resource mapperLocations;
}


并且,在这个文件中,继续配置使用MyBatis时所需要使用的数据源DataSource和SqlSessionFactoryBean的对象:


@Bean

public DataSource getDataSource() {

 // 当前方法声明的返回值类型是javax.sql.DataSource接口类型的,符合该接口类型的数据源有多种

 // 由于本次使用的是commons-dbcp,则创建并返回BasicDataSource的对象

 // 如果改用其它数据源,则创建并返回其它数据源的对象

BasicDataSource dataSource = new BasicDataSource();
  dataSource.setUrl(url);
  dataSource.setDriverClassName(driverClassName);
  dataSource.setUsername(username);
  dataSource.setPassword(password);
  dataSource.setInitialSize(initialSize);
  dataSource.setMaxTotal(maxTotal);
  return dataSource;
}
@Bean
public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource) {
  SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
  bean.setDataSource(dataSource);
  bean.setMapperLocations(mapperLocations);
  return bean;
}


然后,再创建SpringMvcConfig类,用于配置SpringMVC相关的配置:


package cn.tedu.ssm;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.spring5.view.ThymeleafViewResolver;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
@Configuration
@EnableWebMvc
@ComponentScan("cn.tedu.ssm")
public class SpringMvcConfig implements WebMvcConfigurer {

/**

 * 字符编码

 */

private String characterEncoding = "utf-8";


// 如果需要使用Thymeleaf,则必须添加以下配置

@Bean

public ViewResolver getViewResolver() {
  ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
  templateResolver.setCacheable(false);
  templateResolver.setCharacterEncoding(characterEncoding);
  templateResolver.setTemplateMode("HTML");
  templateResolver.setPrefix("/templates/");
  templateResolver.setSuffix(".html");
  SpringTemplateEngine templateEngine = new SpringTemplateEngine();
  templateEngine.setTemplateResolver(templateResolver);
  ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
  viewResolver.setCharacterEncoding(characterEncoding);
  viewResolver.setTemplateEngine(templateEngine);
  return viewResolver;
  }
}


注意:由于以上配置了使用Thymeleaf时的“前缀”与“后缀”,所以,必须在src/main/resources下创建templates文件夹,用于存放Thymeleaf模版页面,且这些模版页面的扩展名必须是.html。


后续,如果还有与SpringMVC相关的配置,也写在以上SpringMvcConfig类中,例如拦截器的配置信息等。


最后,创建SpringMvcInitializer类作为项目的初始化类:


package cn.tedu.ssm;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  @Override
  protected Class<?>[] getRootConfigClasses() {
  return new Class[] { SpringConfig.class };
  }
  @Override
  protected Class<?>[] getServletConfigClasses() {
  return new Class[] { SpringMvcConfig.class };
  }
  @Override
  protected String[] getServletMappings() {
  return new String[] { "*.do" };
  }
}

由于SpringMVC项目中,默认情况下,使用POST方式的请求提交的数据都是ISO-8859-1编码的,所以,在以上初始化类中,继续补充过滤器的配置,以应用字符编码过滤器:


private String encoding = "utf-8";
@Override
protected Filter[] getServletFilters() {
  CharacterEncodingFilter filter = new CharacterEncodingFilter(encoding);
  return new Filter[] { filter };
}

一个整合的SSM框架就已经全部配置完成,接下来,就是具体的使用了!


注意:在确定了使用MyBatis时创建的接口所在的包之后,需要在SpringConfig类的声明之前添加@MapperScan,以指定接口文件所在的包,例如:


@Configuration
@PropertySource("classpath:application.properties")
@MapperScan("cn.tedu.ssm.mapper")
public class SpringConfig {

 

目录
相关文章
|
2月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
2月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
2月前
|
Java 数据库连接 Maven
SSM框架整合图书管理项目
这篇文章是关于SSM框架整合到图书管理项目的详细教程,涵盖了从Maven项目构建、依赖导入、数据库连接、配置文件编写、实体类和接口实现到SpringMVC整合的完整步骤。
SSM框架整合图书管理项目
|
14天前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
10 0
|
2月前
|
Java 数据库
使用ssm框架搭建的图书管理系统
本文介绍了使用SSM框架搭建的图书管理系统,包括图书信息管理、借阅记录管理、公告管理、出入库管理以及用户管理等功能。
使用ssm框架搭建的图书管理系统
|
4月前
|
Java
SSM框架Controller层可以做什么
SSM框架Controller层可以做什么
|
4月前
|
存储 Java 关系型数据库
基于SSM框架的电影院售票网站
基于SSM框架的电影院售票网站
基于SSM框架的电影院售票网站
|
4月前
|
前端开发 Java
基于SSM框架的手机商城项目
基于SSM框架的手机商城项目
41 0
|
4月前
|
Java 数据库连接 Spring
杨校老师课堂之Java EE框架SSM所需jar包下载
杨校老师课堂之Java EE框架SSM所需jar包下载
48 0
|
4月前
|
Java 关系型数据库 MySQL
基于Java和SSM框架的多人命题系统
基于Java和SSM框架的多人命题系统