SSM项目初始化配置示例

1.Spring配置

//配置类说明
@Configuration
//基于aspectj的AOP支持
@EnableAspectJAutoProxy
//事务支持
@EnableTransactionManagement
//包扫描,排除@Controller注解的bean,Controller由MVC配置扫描
@ComponentScan(value = "cn.sunyog.yaos", excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = {Controller.class, ControllerAdvice.class})})
public class AppRootConfig {}

2.SpringMVC配置

//包扫描,扫描所有controller
@ComponentScan(value = "cn.sunyog.yaos", useDefaultFilters = false,includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = {Controller.class, ControllerAdvice.class})})
//使用SpringMVC默认配置
@EnableWebMvc
//配置类说明
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {/*** 配置jsp路径前缀后缀* @param registry*/public void configureViewResolvers(ViewResolverRegistry registry) {registry.jsp("/WEB-INF/pages/", ".jsp");}/*** 静态资源访问** @param registry*/public void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/static/**").addResourceLocations("/WEB-INF/static/");}/*** 配置fast json* @param converters*/public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();FastJsonConfig config = new FastJsonConfig();config.setSerializerFeatures(SerializerFeature.WriteDateUseDateFormat, SerializerFeature.QuoteFieldNames,SerializerFeature.WriteNullStringAsEmpty);converter.setFastJsonConfig(config);converters.add(converter);}
}

3.Web初始化类

public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {/*** 设定Spring配置类* @return*/protected Class<?>[] getRootConfigClasses() {return new Class[]{AppRootConfig.class};}/*** 设定SpringMVC配置类* @return*/protected Class<?>[] getServletConfigClasses() {return new Class[]{WebMvcConfig.class};}/*** 设置servlet映射* @return*/protected String[] getServletMappings() {return new String[]{"/"};}
}

4.mybatis配置

//设置dao接口路径
@MapperScan("cn.sunyog.yaos.**.dao")
//引入外部资源文件
@PropertySource("classpath:/config/mybatis.properties")
//Spring配置类说明
@Configuration
public class MybatisConfig {/*** 配置数据源* @param env* @return*/@Bean(value = "dataSource", initMethod = "init", destroyMethod = "close")public DataSource newDruidDataSource(Environment env) {DruidDataSource res = new DruidDataSource();res.setDriverClassName(env.getProperty("datasource.jdbcDriver"));res.setUrl(env.getProperty("datasource.jdbcUrl"));res.setUsername(env.getProperty("datasource.jdbcUser"));res.setPassword(env.getProperty("datasource.jdbcPassword"));res.setMaxActive(Integer.parseInt(env.getProperty("datasource.jdbcMaxActive")));return res;}/*** mybatis详细配置* @param dataSource* @return* @throws IOException*/@Bean("sqlSessionFactory")public SqlSessionFactoryBean newSqlSesionFactoryBean(DataSource dataSource) throws IOException {//1.构建bean对象SqlSessionFactoryBean res = new SqlSessionFactoryBean();//2.配置数据源res.setDataSource(dataSource);//3.设置映射文件Resource[] mapperLocations = new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*/*Mapper.xml");res.setMapperLocations(mapperLocations);//设置下划线转驼峰org.apache.ibatis.session.Configuration config = new org.apache.ibatis.session.Configuration();config.setMapUnderscoreToCamelCase(true);res.setConfiguration(config);return res;}/*** 配置事务支持* @param dataSource* @return*/@Bean("txManager")public DataSourceTransactionManager newTransactionManager(@Autowired DataSource dataSource){DataSourceTransactionManager tManager= new DataSourceTransactionManager();tManager.setDataSource(dataSource);return tManager;}
}

properties文件内容:

# 适用mysql5.5
datasource.jdbcDriver=com.mysql.jdbc.Driver
datasource.jdbcUrl=jdbc:mysql://host:3306/databases?useUnicode=true&characterEncoding=utf-8
datasource.jdbcUser=username
datasource.jdbcPassword=password
datasource.jdbcMaxActive=100

功能实现

测试Controller

@Controller
@RequestMapping(value = "/test")
public class TestController {@Autowiredprivate SysUserDao sysUserDao;@GetMapping("/index")public String getIndex() {return "index";}@GetMapping("/users")@ResponseBodypublic List<SysUser> getUsers(){List<SysUser> res = sysUserDao.getSysUsers();return res;}
}

Dao接口代码

//如果没有配置@MapperScan需要增加@Component注解
@Mapper
public interface SysUserDao {List<SysUser> getSysUsers();
}

对应的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.sunyog.yaos.common.dao.SysUserDao"><select id="getSysUsers" resultType="cn.sunyog.yaos.common.entity.SysUser">select user_id,username,password,salt from sys_user</select>
</mapper>

jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>主页</title>
</head>
<body>
<%for(int i=1;i<6;i++){%>
<h<%=i%>>标题&nbsp;<%=i%></h>
<%}%>
</body>
</html>

SSM项目初始化配置示例相关推荐

  1. 微信小程序项目初始化配置

    微信小程序项目初始化配置 注:该文章用于记录或学习交流 文章目录 微信小程序项目初始化配置 前言 一.初始项目创建 1.微信小程序开发者工具创建初始项目 2.微信小程序全局路径配置 3.微信小程序引入 ...

  2. SSM 项目基本配置

    系列文章目录 提示:记录SSM 项目的配置文件配置步骤 可以创建配置模板,减少代码量,但是必须了解每个配置的作用 文章目录 系列文章目录 一.创建数据库和表单 二.导入依赖 三 .springmvc. ...

  3. Swit项目-初始化配置

    一.项目部署+配置 二.初始化项目 ①常规初始化 class MainViewController: UITabBarController {override func viewDidLoad() { ...

  4. SSM项目_配置双数据源

    近日项目中因为涉及到一个需求是A系统某表的数据要与B系统的某表数据在数据上出现不一致的情况,需要做一个数据比对功能,这时候就涉及到两个系统的数据库的数据比对. 方案一,将A系统的数据导出到Excel文 ...

  5. Vite 项目初始化配置

    创建项目: vite :中文链接 英文链接 npm init @vitejs/app 选择vue模板 创建项目 一.环境变量设置 (dev,prod) 新建 .env.development  .en ...

  6. idea 配置ssm项目后配置文件的简要解析及功能类之间的联系

    注:本文不包含怎么配置 idea ssm 项目,仅做个人向配置好之后,对于各个文件的分析及跳转之间的的浅解析(之前照着配的文章找不到了qwq). 叠甲:新手,刚学,不太会,如有错请指出,谢谢! 目录 ...

  7. ssm如何支持热部署_最新Spring Boot实战文档推荐:项目搭建+配置+SSM整合

    在Spring Boot项目中,正常来说是不存在XML配置,这是因为Spring Boot不推荐使用XML,注意,排不支持,Spring Boot推荐开发者使用Java配置来搭建框架, Spring ...

  8. ssm注解配置连接mysql_基于注解和配置类的SSM(Spring+SpringMVC+Mybatis)项目详细配置...

    在上一篇文章中介绍了使用注解和xml配置文件对项目进行配置,在这篇文章中将xml配置文件中的配置信息都改成使用注解或者配置类的形式. 第一步.配置pom.xml 在一个ssm项目中,可能需要用到的依赖 ...

  9. 使用IDEA+maven配置SSM项目步骤,以及配置项目过程中遇到的各种坑(SSM配置文件加载问题,使用注解开发问题,maven开发SSM项目步骤)

    问题概览 1. 更改springmvc配置文件的默认位置,但是"classpath:文件路径",路径明明正确,但是就是识别不到,idea报找不到配置文件的错误. 2. 使用myba ...

最新文章

  1. R语言使用caretEnsemble包的caretList函数一次性构建多个机器学习模型、使用lattice包的bwplot函数使用箱图对比多个模型在多个指标上的性能差异
  2. php 刷新iframe,js刷新iframe
  3. echarts搭配MySQL_Echarts连接Mysql使用心得
  4. 【方案分享】2020娜扎X薇娅SKG娜小古直播方案.pdf(附下载链接)
  5. Dojo 1.7正式发布
  6. mac os 10.10下安装android studio问题:android studio was unable to find a valid jvm
  7. Wireshark入门:第一次亲密接触
  8. 全国计算机二级ps考什么,计算机二级ps考试内容有哪些
  9. optim优化器的使用
  10. 你要知道的N个Android适配问题
  11. 最新风车IM即时通讯系统源码+带安装教程
  12. storm架构及原理详解
  13. vscode 关闭 编辑框右侧的 预览框
  14. js设置延时加载事件
  15. Qt 使用WPS或HTML生成word文档
  16. HTTPS原理、单向和双向认证
  17. Oracle-PL/SQL-Developer-数据从服务器迁移至本地
  18. 三星note5 android 7,国行三星note5安卓7.0降级6.0刷机包
  19. 计算机术语中英文对照
  20. 高中数学必修一:函数性质图像知识点总结(名师总结)

热门文章

  1. matlab查找鞍点的位置,找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该...
  2. php recursion,php5.1.6情况下,出现RECURSION。求破!!!
  3. 被C++耽误的美术大师
  4. cfe刷机教程 斐讯k3_斐讯K3全版本刷机教程2019-不用降级开telnet拆机TTL
  5. 11道腾讯微信面试过程的随口题,道道经典,学到就是赚到
  6. 3dmax2021 中的各种显示相关如何设置?
  7. markdown利器-小书匠
  8. 计算机毕设Python+Vue余庆金阳驾校管理系统(程序+LW+部署)
  9. 带你一步步剖析Retrofit-源码解析:一款基于-OkHttp-实现的网络请求框架
  10. 爱淘php,PHP文件操作实现代码