ssm搭建,maven,javaConfig
基于java配置SSM,eclipse
新建maven,web项目
....
项目结构:

jar包
spring和DispatcherServlet上下文,相当于web.xml
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 ,相当于springmvc.xml
@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 上下文,相当于spring.xml
@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, 可以配置在spring.xml中
@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项目
- 新建maven项目

- 填写group id和artifictId,next

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

项目结果如下:

添加web模块
- 项目结构->Modules->add->web

- 删除web.xml

- 设置web项目根路径

- 添加artifact

- 配置Tomcat
- 此时项目结构

此时可以访问webapp下的静态文件了
- jar包,pom.xml
注意:使用maven时也要添加servlet依赖,注意作用域。此时可以使用servlet了
spring配置
同eclipse。
源码附件
ssm搭建,maven,javaConfig的更多相关文章
- idea+maven+ssm搭建boot_crm项目遇到的问题
使用idea+maven+ssm搭建一个boot_crm项目,遇到的问题如下: 1.环境搭建好了,相关配置文件都配置好了,也部署到了tomcat,但是无法启动首页. 通过百度,google找到了,原因 ...
- ssm+maven+pageHelper搭建maven项目实现快速分页
ssm+maven+pageHelper搭建maven项目实现快速分页 PageHelper分页使用: 插件的环境引入: 1.pom文件中引入分页插件的资源位置: <dependency> ...
- 如何搭建maven项目和搭建ssm框架
1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One ...
- 使用idea搭建maven项目
前言---2018-11-24 博主最近呀,也是一直在看书,但是呢有许多小伙伴和博主反应,在eclipse都会搭建maven项目,但是呢到了idea就不会了,于是了博主就起了个早床写一遍博客咯.希望对 ...
- SSM搭建
SSM搭建 SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架.. Sprin ...
- Eclipse搭建Maven Prooject(终于)
今天我们一起来探讨eclipse搭建maven项目的步骤 一.建一个maven项目, 1.找到File ,点击 2.弹出窗口,再点击new 3.弹出窗口,点击other 4.输入maven,找到mav ...
- 久违的问候-----eclipse中搭建maven项目2016年
好久没有写过博客了,可是一直向别人推荐自己的博客,深感惭愧!今天再次在寒冷之夜继续code,config,write. 接下来,我们就来谈下eclipse中搭建maven web工程的步骤!虽然就是一 ...
- Idea开发环境中搭建Maven并且使用Maven打包部署程序
1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...
- Eclipse 搭建 Maven Web项目
第一步:安装JDK: 第二步:安装Eclipse: 第三步:安装tomcat7: 第四步:安装maven插件: 4.1 下载maven:http://maven.apache.org/download ...
- nexus 搭建maven本地仓库
使用Nexus搭建Maven本地仓库 阅读目录 序 Nexus 序 在工作中可能存在有些开发机器不能上网,大量的机器获取jar包会导致公司网络很慢,还有时候公司会自己发布自己的项目版本,其他的项目 ...
随机推荐
- Data Cleaning_Chicago Air-quality Case_TBC!!!
- 为什么Fun函数能够执行
#include<stdio.h> #include<windows.h> void Fun() { printf("Kali-Team\n"); } in ...
- 小程序view标签靠右方法
第一种:不浮动靠右 text-align:right; 第二种:浮动靠右 float:right;
- spark on yarn container分配极端倾斜
环境:CDH5.13.3 spark2.3 在提交任务之后,发现executor运行少量几台nodemanager,而其他nodemanager没有executor分配. 测试环境通过spark-s ...
- Spring boot PageHelper.startPage(pageIndex, pageSize)分页无效
H5页面在测试列表的时候发现分页好像没有起到作用 看了一下后台也没有问题哈: 1.PageHelper.startPage(pageIndex, pageSize)要放在要分页的上面,也没错 2.查询 ...
- Windows 与 Linux 、esxi下面查看内存容量和数量
1. Windows 查看内存信息: > wmic MEMORYCHIP get BankLabel,DeviceLocator,Capacity,Speed 2. Linux 查看内存信息: ...
- {$DEFINE WANYI}
var Form5: TForm5; {$DEFINE WANYI}implementation{$R *.dfm}procedure TForm5.Button1Click(Sender: TObj ...
- HomePod即将发售,但硬件不再是苹果的救命稻草
流年不利的苹果,在多个维度都遭到了重创.除了与高通纠缠不清的专利官司外,iPhone销量还直线下滑并影响到营收.最终,苹果股价.市值都处于暴跌态势.面对内外夹击的不利局面,苹果信奉多年的"封 ...
- Swift 语法糖then
then是一个swift初始化库,只有80几行的代码库,确可以让初始化变得很优雅. 1.使用then初始化AnyObject,这里以初始化控件为例 lazy var label = UILabel() ...
- ②初识spring
一:基础搭建 需要:eclipse.spring插件(确认版本号并下载对应插件详见:https://blog.csdn.net/a1150499208/article/details/87988392 ...