基于java配置SSM,eclipse

新建maven,web项目

....

项目结构:

jar包

pom.xml

spring和DispatcherServlet上下文

  public class DemoWebApplicationInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
// TODO Auto-generated method stub
return new Class<?>[] {RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
// TODO Auto-generated method stub
return new Class<?>[] {WebConfig.class};
}
@Override
protected String[] getServletMappings() {
// TODO Auto-generated method stub
return new String[] {"/"};
}
}

DispatcherServlet

  @Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.getword.controller"})
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
/**
* 静态资源
*/
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
// TODO Auto-generated method stub
configurer.enable();
}
}

spring 上下文

  @Configuration
@ComponentScan(basePackages = {"com.getword"},
excludeFilters = {@Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class)})
@Import(DataSourceConfig.class)
public class RootConfig {
@Bean
public BeanNameAutoProxyCreator autoProxyCreator() {
BeanNameAutoProxyCreator autoProxyCreator = new BeanNameAutoProxyCreator();
autoProxyCreator.setProxyTargetClass(true);
// 设置要创建代理的那些Bean的名字
autoProxyCreator.setBeanNames("*Service");
autoProxyCreator.setInterceptorNames("transactionInterceptor");
return autoProxyCreator;
}
}

DataSourceConfig

  @Configuration
@MapperScan("com.getword.dao")
public class DataSourceConfig {
private final static Logger LOG = Logger.getLogger(DataSourceConfig.class);
private String driver = "com.mysql.jdbc.Driver";;
private String url = "jdbc:mysql://localhost:3306/spring?characterEncoding=UTF-8&serverTimezone=UTC";
private String username = "root";
private String password = "123";
@Bean
public BasicDataSource dataSource() {
LOG.info("Initialize the BasicDataSource...");
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
// mybatis的配置
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean() throws IOException {
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource());
sqlSessionFactoryBean.setMapperLocations(resourcePatternResolver.getResources("classpath*:mappers/*.xml"));
sqlSessionFactoryBean.setTypeAliasesPackage("com.getword.domain");// 别名,让*Mpper.xml实体类映射可以不加上具体包名
return sqlSessionFactoryBean;
} // 事务管理器 对mybatis操作数据库事务控制,spring使用jdbc的事务控制类
@Bean(name = "transactionManager")
public DataSourceTransactionManager dataSourceTransactionManager() {
DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
dataSourceTransactionManager.setDataSource(dataSource());
return dataSourceTransactionManager;
} @Bean(name = "transactionInterceptor")
public TransactionInterceptor interceptor() {
TransactionInterceptor interceptor = new TransactionInterceptor();
interceptor.setTransactionManager(dataSourceTransactionManager());
Properties transactionAttributes = new Properties();
transactionAttributes.setProperty("save*", "PROPAGATION_REQUIRED");
transactionAttributes.setProperty("del*", "PROPAGATION_REQUIRED");
transactionAttributes.setProperty("update*", "PROPAGATION_REQUIRED");
transactionAttributes.setProperty("get*", "PROPAGATION_REQUIRED,readOnly");
transactionAttributes.setProperty("find*", "PROPAGATION_REQUIRED,readOnly");
transactionAttributes.setProperty("*", "PROPAGATION_REQUIRED");
interceptor.setTransactionAttributes(transactionAttributes);
return interceptor;
}
}

注意:mapper的命名空间必须和对应的接口的全路径一致!!!

idea,从maven简单java项目转web项目

新建maven项目

  1. 新建maven项目

  1. 填写group id和artifictId,next

  1. 输入项目名称,finish
  2. 配置maven,次步骤最后在新建项目之前

​

项目结果如下:

添加web模块

  1. 项目结构->Modules->add->web

  1. 删除web.xml

  1. 设置web项目根路径

  • 添加artifact

  1. 配置Tomcat
  2. 此时项目结构

此时可以访问webapp下的静态文件了

  1. jar包,pom.xml

pom.xml

注意:使用maven时也要添加servlet依赖,注意作用域。此时可以使用servlet了

spring配置

同eclipse。

源码附件

ssm基本配置

mybatis环境搭建(eclipse,idea)的更多相关文章

  1. springmvc+mybatis环境搭建

    1.spring+mybatis 环境搭建: A.配置jdbc和dbcp数据源:注意版本com.mysql.cj.jdbc.Driver B.配置sessionfactory,绑定dbcp及配置map ...

  2. MyBatis -01- 初识 MyBatis + MyBatis 环境搭建

    MyBatis -01- 初识 MyBatis + MyBatis 环境搭建 MyBatis 本是 apache 的一个开源项目 iBatis(iBATIS = "internet" ...

  3. MyBatis之MyBatis环境搭建

    MyBatis之MyBatis环境搭建 一.MyBatis开发环境搭建 1.引入Jar包 ①MyBatis mybatis-3.4.1.jar ant-1.9.6.jar ant-launcher-1 ...

  4. Mybatis环境搭建中的案例分析 及 如果自己编写DAO接口的实现类

    Mybatis环境搭建中的案例分析public static void main (String[] args) throws Exception { //读配置文件 //第一个: 使用类加载器,只能 ...

  5. MyBatis 环境搭建(四)

    MyBatis 引言 在回顾JDBC时,我们已经创建有 Java 工程,而且也已经导入 mysql 依赖包,这里就直接在原有工程上搭建MyBatis环境,以及使用MyBatis来实现之前用 JDBC ...

  6. Mybatis环境搭建及测试

    1.新建java project,导入相应jar包 本次使用到的mybatis-3.2.7版本 mybatis需要jar包:mybatis-3.2.7.jar.lib文件下的依赖jar mysql驱动 ...

  7. Spring日记_02之 json、javaBean、.do、MySql、MyBatis 环境搭建结束

    JSON Json是JavaScript直接量语法 无参构造方法直接 Alt + \ 就可以提示添加 Project – Clean 浏览器向服务器发送请求,服务器中的Spring中的SpringMV ...

  8. mybatis 环境搭建和基本说明

    mybatis介绍就不多提了,直接步入正题. 先准备好eclipse和MySQL,然后先看一下目录结构 文件和类很少,所以mybatis的搭建是非常简单的,如搭建中遇到问题可以先参考文档最后一部分的综 ...

  9. MyBatis 环境搭建 (一)

    一.MyBatis简介 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简 ...

  10. NDK学习一: 环境搭建Eclipse篇

    下载NDK 国内的一个镜像站点 下载速度比较快 http://wear.techbrood.com/tools/sdk/ndk/#Installing 网上搭建环境的方案有很多 1. Eclipse ...

随机推荐

  1. SSH框架结构分析

    分类: 工作问题2012-03-29 18:10 1511人阅读 评论(0) 收藏 举报 框架sshhibernatespringstrutsdao 最近在弄j2ee,发现还是学到了很多东西,心情ha ...

  2. 修改Centos7的yum源

    以下为修改Centos7的yum源: 1. 备份原镜像文件,便于后期恢复 [root@keepmydream ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc ...

  3. docker-compose 快速部署Prometheus,监控docker 容器, 宿主机,ceph -- cluster集群

    话不多说上菜: 现在环境是这样: ceph 4台: 192.168.100.21  ceph-node1 192.168.100.22  ceph-node2 192.168.100.23  ceph ...

  4. Ternsorflow 学习:001-通过例程,初步了解Tensorflow

    前言 本章的目的是了解和运行 TensorFlow,在开始之前,让我们先看一段使用 Python API 撰写的 TensorFlow 示例代码,让你对将要学习的内容有初步的印象. 下面这段短小的 P ...

  5. P1072 开学寄语

    P1072 开学寄语 转跳点:

  6. HihoCoder第四周:Trie图

    第四周的题目是前两周的综合,综合在一个是KMP算法的思想,一个是树的这么一个数据结构. 题目 : Trie图 输入 每个输入文件有且仅有一组测试数据. 每个测试数据的第一行为一个整数N,表示河蟹词典的 ...

  7. python format使用方法

    #使用format 方法进行格式化 print("The number {1:} in hex is: {1:#x}, the number {0:} in oct is {0:o}&quo ...

  8. spoj694--Distinct Substrings

    个人第一道后缀数组题目.对于每一个后缀suffix(i),都有len-sa[i]个前缀(也即有len-sa[i]个不同的字符串),其中与排名前一位的后缀有height[i]个共同的前缀,最后所得到的新 ...

  9. CSS样式表——样式

    样式: 1)大小 width:200px;       或width:100%;                           //样式中要加单位 height:100px; 2)背景 back ...

  10. Tips for traing DNN

    1.   一般的机器学习方法不会在train好的模型上检查training data的结果,因为DNN在training data上都没有办法获得很好的正确率, 所以要先回头看一下要对模型做什么修改, ...