配置使用机器和文件:
window10,jdk1.8,mysql5.7,连接池druid1.1.5,spring5.0.2.RELEASE全家组合,orm框架使用的mybatis3.4.5(其实版本并不重要主要是考虑到某些版本的兼容性)
假如习惯了eclipse的小伙伴转到idea很容易的,在setting中把快捷键改成eclipse的,使用一段时间后你会发现idea是真的好.
首先打开创建页面(别忘点击对勾)
选择webapp项目–>点击next
进行设置
经过一段傻瓜点击到达项目初始位置:
补充java源代码文件夹
将文件夹改为
建立好初步的目录
最重要的来了:—>配置文件
1.pom.xml
推荐的一种模式我们可以通过properties来控制版本
`
UTF-8
5.0.2.RELEASE
3.4.5
org.springframework
spring-context
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-test
${spring.version}
test
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.3.0
mysql
mysql-connector-java
5.1.38
runtime
com.alibaba
druid
1.0.26
org.aspectj
aspectjweaver
1.8.7
com.fasterxml.jackson.core
jackson-databind
2.9.5
junit
junit
4.12
test
javax.servlet
javax.servlet-api
3.0.1
provided
jstl
jstl
1.2
org.slf4j
slf4j-api
1.7.21
org.slf4j
slf4j-log4j12
1.7.21
org.projectlombok
lombok
1.16.6
compile
org.apache.maven.plugins
maven-compiler-plugin
3.5.1
1.8
UTF-8
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
UTF-8
/
80
` 我呢刚开始比较low用的是
4.0.0
com.chair
temp
1.0
war
temp Maven Webapp
http://www.example.com
UTF-8
1.7
1.7
junit
junit
4.11
test
org.junit.jupiter
junit-jupiter-api
5.3.1
test
org.junit.platform
junit-platform-launcher
1.0.1
test
org.junit.vintage
junit-vintage-engine
4.12.1
test
org.springframework
spring-core
5.0.2.RELEASE
org.springframework
spring-web
5.0.2.RELEASE
org.springframework
spring-oxm
5.0.2.RELEASE
org.springframework
spring-tx
5.0.2.RELEASE
org.springframework
spring-jdbc
5.0.2.RELEASE
org.springframework
spring-webmvc
5.0.2.RELEASE
org.springframework
spring-aop
5.0.2.RELEASE
org.springframework
spring-context-support
5.0.2.RELEASE
org.springframework
spring-test
5.0.2.RELEASE
org.mybatis
mybatis
3.4.5
org.mybatis
mybatis-spring
1.3.1
mysql
mysql-connector-java
5.1.6
com.alibaba
druid
1.1.5
commons-dbcp
commons-dbcp
1.4
log4j
log4j
1.2.17
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.4
commons-codec
commons-codec
1.9
com.github.pagehelper
pagehelper
4.0.0
com.thetransactioncompany
cors-filter
2.6
org.aspectj
aspectjrt
1.6.11
org.aspectj
aspectjweaver
1.7.3
com.mchange
c3p0
0.9.5.2
org.codehaus.jackson
jackson-mapper-asl
1.9.12
javax.servlet
servlet-api
2.5
javax.servlet
javax.servlet-api
4.0.1
provided
javax.servlet
jstl
1.2
temp
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
true
true
src/main/java
**/*Mapper.xml
2.确定搭建项目此时还没有配置resources文件
(为了避免这里的UserMapper.xml不被编译进target中,所以我们需要在pom.xml中配置这一行:)
src/main/java
**/*Mapper.xml
3.配置resources中的文件
首先是applicationContext.xml
请自己创建一个db.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:端口/数据库名字
jdbc.username=用户名
jdbc.password=用户密码
日志记录文件log4j.properties
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.cn.wolfcode.ssm.mapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
在applicationContext.xml中我们看到还有一个mybatis.xml是从外部引入的,这里我们来配置对mybatis的配置
如果只像先测试一下在spring下的mybatis的crud这里已经配置完成了!!!
为了后序实现tomcat的部署
当然我们是个ssm项目,不能缺少springMVC的配件
配置文件完成!!!
当然需要一件事情成功少不了三步,假设源代码已经完成,配置文件也已经配置完成,还有一个就是让配置文件生效的文件.那就是web.xml文件
这里使用servlet3.0的规范
过滤器
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceRequestEncoding
true
encodingFilter
/*
使springMVC前端控制器DispatcherServlet生效
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceRequestEncoding
true
encodingFilter
/*
把这两个文件内容放入web.xml的便ok了.
这里繁琐的业务逻辑也就是真正的代码部分请自动完成.
这里会发现idea中报出了许多错误
1.dtd约束文件错误
解决方法:我这里提前下载好了,所以选择本地配置
点击第一行的加号把URL和File配置好注意这里的URL要和你文件里的一致例如:
1.配置mysql在数据库中的表,例如叫User
2.在domain中配置实体对象User这里属性的数据类型和mysql中相匹配.
3.配置dao这里使用mybatis所以在mapper中创建两个文件
UserMapper.java(写方法)接口和UserMapper.xml()
注意事项:
a:接口的类全路径名要和xml的namespace匹配,一个字不能差
b:*Mapper.xml是否便宜到target目录里面(没有的看上文)
c:*Mapper.xml中的方法要和接口中的方法名称类型一模一样
d:查看返回值ResultMap是否配错
这里贴入代码以供参考:
INSERT INTO user (name) VALUES ( #{name})
UPDATE user SET name = #{name} WHERE id = #{id}
DELETE FROM user WHERE id = #{id}
这里idea的人工美学设计会报出一大串警告
解决方法配置mysql;打开选项卡一般就打开了
点击Database
还有警告,那就只能最后一招:打开setting搜索inspection
4.创建个service业务方法包IUserService接口和IUserServiceimpl.java实现类,这里我贴出我的源代码仅供参考:
package com.chair.service.impl;
import com.chair.domain.User;
import com.chair.mapper.UserMapper;
import com.chair.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IUserServiceImpl implements IUserService {
@Autowired
private UserMapper mapper;
@Override
public List listAll() {
List list=mapper.listAll();
return list;
}
@Override
public void add(User user) {
mapper.add(user);
}
@Override
public void delete(int id) {
mapper.delete(id);
}
@Override
public void update(User user) {
mapper.update(user);
}
@Override
public User selectOne(int id) {
return mapper.selectOne(id);
}
}
applicationContext.xml中的
配置会自动帮我们把Mapper接口给在Spring中声明,这里我们只要在
private UserMapper mapper;的声明上添加@Autowired标签便可以给我们自动注入:
好了我们开始测试吧!!!
因为idea中的junit是自动只能在test中使用的
在App中测试,先贴上代码
import com.chair.domain.User;
import com.chair.service.IUserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import java.util.List;
@SpringJUnitConfig
@ContextConfiguration(value = "classpath:applicationContext.xml")
public class App {
@Autowired
IUserService service;
@Test
void testUser(){
List list = service.listAll();
for (User user : list) {
System.out.println(user);
}
}
}
这里我用的junit5,因为我们已经在pom.xml中加上了junit5的依赖包
junit
junit
4.11
test
org.junit.jupiter
junit-jupiter-api
5.3.1
test
org.junit.platform
junit-platform-launcher
1.0.1
test
org.junit.vintage
junit-vintage-engine
4.12.1
test
当然junit4的我们把
@SpringJUnitConfig
@ContextConfiguration(value = “classpath:applicationContext.xml”)
改为
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(“classpath:applicationContext.xml”)
并且把test方法全部弄成以public开头的.
到这里我们便成功了.
后序的mvc项目敬请关注哦!