注意
本篇分享只是介绍详细过程,并不介绍概念
搭建完的空项目已经上传到github上了,点击这里传送
1.创建一个新工程
创建工程步骤1.1
创建工程步骤1.2
创建工程步骤1.3
创建工程1.4
2.修改pom.xml文件
2.1 导入版本控制(设置版本号)
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.0.2.RELEASE</spring.version>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<mysql.version>5.1.6</mysql.version>
<mybatis.version>3.4.5</mybatis.version>
</properties>
2.2 导入依赖
导入依赖后会自动导入jar包
<dependencies>
<!--用于aop-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!--springmvc需要的jar包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!--springmvc需要的jar包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--spring的单元测试-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!--事务-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!--jdbc模板技术-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!--servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!--servlet-jsp-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!--el表达式 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--用于spring整合mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!--c3p0连接池-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
导入之后,可以在External Libraries中查看是否成功导入jar包。
3.创建java和resources文件夹
3.1 右键main New Directory,创建两个文件夹一个名为java,一个名为resources。
3.2 创建完成之后,java文件夹右键Mark Directory as Sources Root
3.3 rosources文件夹右键Mark Directory as ResourcesRoot
4. 创建文件夹
在java下新建一些包,层级结构如下,com.codetree是域名反写,在codetree下建立的个包是后续用来写代码的包。其中com.codetree是自己随便写的,根据自己的喜好来,但是控制层包名controller、业务层包名service、持久层包名dao(或者mapper)是约定俗成的,最好不要随意变动。
5.创建数据库表映射类
在域名下建立domain文件夹,然后在domain下建立一个Student类。类中的成员变量根据数据库表的字段名设置。
例如,数据库中表结构如下,其中id只是作为一个int类型自动递增的主键,没有实际意义,所以实体类中不需要出现:
5.1 创建实体类
创建实体类,并实现序列化接口。
实体类成员变量如下:
5.2 为实体类创建全参和无参构造方法
Idea快捷键:Alt+Insert(光标在哪,构造方法就生成在哪),Alt+Insert后选择Constructor(构造方法)
选择Select None,创建一个无参构造:
然后全选,创建全参构造:
5.3 创建getter/setter方法:
首先选择Getter And Setter
成员变量全选,为所有的成员变量创建getter/setter方法:
5.4 创建toString方法
快捷键选择toString():
一般会默认全选,然后OK。
至此,就结束了实体类的创建。
6. 创建持久层dao接口
一般命名只要实体类加Dao就可以了,如:StuDao、UserDao、AdminDao等等
但是我的命名习惯为在接口名前加上一个大写的“ I ”,表示这是一个接口。
创建完成后确保这是一个接口,然后在接口中写入一个测试的查询方法
7. 创建业务层service接口以及实现类
7.1创建接口
创建过程一样,同为接口。
7.2创建实现类
命名为impl.StuServiceImpl的效果为,在service包下生成一个impl的包,然后在impl包下创建一个StuServiceImpl类
创建实现类之后,先实现接口 implements IStuService,然后Alt+Insert选择Implement Methods,实现接口中定义的方法。
点击OK
先简单写一句测试代码
8. 创建控制层类
先建完放这里,待会儿再用
9. 配置spring
9.1 在resources下创建spring配置文件,命名为ApplicationContext.
但是这个里面的约束是远远不够的,需要我们自己再加上一些.
9.2 开启注解扫描
9.3 为service加上注解
spring配置文件扫描到这个注解之后,会把这个类注入IOC容器,并指定其名称为stuService.
9.4 在resources文件夹中导入log4j配置文件,用于测试
点击这里获取文件
提取码:logj
把文件粘贴进去就行(复制文件,点击resources,Ctrl+V)
9.5 编写测试类
9.5.1 创建一个test包,在test下创建一个测试类,在类中写一个返回值为void,参数列表为空的方法,并加上@Test注解,这个时候发现注解注不上,但是在依赖中已经导入过Junit依赖了,所以更改pom.xml中Junit依赖的作用范围
将作用范围从test改为compile
改完作用范围之后,重新回到测试类,发现系统提示可以通过Alt+Enter导包了,就直接快捷键导进去就行
编写测试代码,测试,打印出之前在service中写的输出语句就说明spring配置完成了.
10. 配置springMVC
10.1 配置web.xml配置文件
springmvc前面的classpath:注意一定要加上,否则会解析不到这个文件,这是里是因为还没有创建这个文件,所以会报红.,后续创建了 就不会了
10.2创建springmvc配置文件
在resources目录下,创建一个spring Config文件,文件名设为springmvc
更改约束,把前面导入applicationContext的约束再到一次到视频springmvc中,如下:
在springmvc中配置
10.3 编写前端
10.4 编写controller测试代码
回到StuController写入如下内容:
@Controller注解用于标记这个类需要注入到IoC容器;
@RequestMapping注解用于接受前端请求,标记在类上的是一级请求,方法上的是
10.5 创建跳转页面
在WEB-INF目录下创建一个pages文件夹,用于存放网页资源,然后创建success.jsp文件,用于测试
10.6 部署tomcat
新增tomcat服务
配置tomcat(还没结束,先别OK)
点击Deployment,把项目添加进tomcat中
选择带exploded的项目,然后回到Server
把更新操作选项设置为redeploy(重新部署),然后OK
10.7 测试springmvc
点击跳转成功,控制台输出正常,测试成功
11. 整合spring - springmvc
启动服务器时,加载applicationContext.xml配置文件
我前面把applicationContext.xml配置文件首字母大写了,这不是一个好习惯,现在把首字母改回小写(点击文件,Shift + F6 重命名文件)
11.1 配置监听器
然后进入web.xml配置文件,配置监听器,当服务启动,创建ServletContext域对象时,加载applicationContext.xml配置文件,生成容器
11.2 controller层调用service层
@Autowired注解千万别忘记加,否则是拿不到这个service对象的
测试整合spring-springmvc
前端跳转成功
控制台输出正常
12. 配置Mybatis
12.1 创建jdbcConfig配置文件,用于配置数据库连接属性
12.2 新建sqlMapConfig.xml配置文件
12.3 sql编写
用注解的方式写sql
12.4 测试Mybatis
测试成功
13 整合spring-Mybatis-springMVC
13.1 把mybatis需要的对象配置进IoC容器
13.2 测试整合spring-Mybatis
dao接口加上注解
service层调用dao层
controller层调service层,并把数据封装后传入前端
修改前端响应页面
测试整合Spring-Mybatis-SpringMVC,前端显示所有数据,测试成功,环境搭建完毕