ssm配置测试

ssm配置测试_第1张图片
image.png

1、
存放业务java代码
存储项目所用到资源文件,例如各种spring,mybait,日志的配置文件
单元测试存放的java代码
存储单元测试所存的配置文件,一般不会有太多,只是为了规范。
2、创建两个source fould,spring和mapper,mapper主要是用来存放dao中每个方法对应的sql。这些dao设置的sql在这里配置,就不用去写sql,mybait会帮我们实现
3、webapp存放前端静态资源
创建webapp下一个resources文件
4、外部浏览器是无法访问web-inf下的文件。
5、web.xml是来初始化配置信息的。初始化servelt,listener,mapper,filter,还有启动加载级别等。
6、创建package
web 就是control层,存放control控制器,相当于struct2的action
service 业务逻辑层,这个是要实现的,所以多一个service.impl
dao 与数据库打交道,存放数据库的操作,也可以是文件读写操作,也可以是redis的缓存操作。这里可以不用impl,因为这里我们是mybait所以可以在配置文件中实现接口的每个方法。
dto 弥补entity的不足,封装entity
enums 枚举类型
interceptor 拦截器
util 通用工具类


ssm配置测试_第2张图片
image.png

7、引入所需的jar包

1、junit jar包
引入4.12的junit jar包
2、引入logback jar包,希望logback在上线项目中去掉test。默认是compile


ssm配置测试_第3张图片
image.png

3、spring jar包,因为spring jar包的版本都一样所以我们设置占位符。spring bean jar包的功能包括访问配置文件,创建和管理bean,以及进行控制反转所涉及的基础类,基础类会根据我们的配置在程序运行时动态的创建所需的类,用到java的反射机制。spring-context,包含了jdni,校验,springapplication相关的类,


ssm配置测试_第4张图片
image.png

springdao


ssm配置测试_第5张图片
image.png

5、springweb


ssm配置测试_第6张图片
image.png

设置占位符,全局变量


ssm配置测试_第7张图片
image.png

非spring的 jar 包
ssm配置测试_第8张图片
image.png

数据库交互的jar包


ssm配置测试_第9张图片
image.png

ssm配置测试_第10张图片
image.png

c3p0连接池。
总共:
单元测试
日志
spring
mybait
数据库

package folder和package 和folder的区别
https://blog.csdn.net/jixinhuluwa/article/details/51954953
包层级
https://blog.csdn.net/ygzk123/article/details/9306473

SSM逐层配置
1、数据库连接配置
src/main/resources/jdbc.properties
因为会存储中文所以useUnicode=true.....
这里暂时密码是明文


ssm配置测试_第11张图片
image.png

2、mybatis
mybatis-config,xml
列标签就是数据库中的字段名,列别名是查询语句查询字段是自定义的别名。


ssm配置测试_第12张图片
image.png

3、spring在src/main/resource/spring下
spring-dao.xml


image.png

ssm配置测试_第13张图片
image.png

ssm配置测试_第14张图片
image.png

ssm配置测试_第15张图片
image.png

总结1、找出读取变量的文件的位置
2、配置数据库的连接池
3、创建一个负责创建数据库连接池的对象
4、配置我们需要去哪个包去扫描我们的dao层并且将我们自动创建连接池对象传进去。

4、resource/spring/spring-service.xml

ssm配置测试_第16张图片
image.png

5、resource/spring/spring-web.xml
扫描要改成web
ssm配置测试_第17张图片
5

6、将spring的配置整合在一起,在web.xml中配置


ssm配置测试_第18张图片
image.png

验证配置是否成功
1、查询Area,自下而上,我们先从dao层创建AreaDao接口,里面一个查询方法
https://blog.csdn.net/wind_324/article/details/6250268配置注释模板

ssm配置测试_第19张图片
image.png

因为mybatis不需要dao去写一个实现类,只需要做一些配置
在mapper文件下创建一个AreaDao.xml
ssm配置测试_第20张图片
image.png

单元测试
在src/test/java下创建com.imooc.o2o.dao包并且在该包下创建AreaDaoTest.class,
并且在src/test/java下的com.imooc.o2o下创建BaseTest.java
注意不是在dao下
因为我们使用注解,所以得告诉junit,这个spring我们要用什么类去跑单元测试


ssm配置测试_第21张图片
image.png

测试AreaDaoTest
如果报错说找不到AreaDao类,说明spring-dao.xml扫描dao层的配置配置错了,少了o2o;


ssm配置测试_第22张图片
pei

接下来测试service,在service层下创建一个AreaService接口。


ssm配置测试_第23张图片
image.png

然后在service的impl层下创建AreaServiceImpl类实现AreaService接口。
autowired告诉spring容器在运行时把AreaDao注入到里面来。
@service告诉spring,这个类是需要你去托管的,别的类如果调用我们这个Areaserviceimpl类注入到接口里面去。


ssm配置测试_第24张图片
image.png

创建单元测试
src/test/java里创建service包下创建AreaServiceTest类
继承BaseTest,因为要用到service配置文件所以配进来。
这里可以看到在AreaServiceImpl的@Service作用,就是告诉spring容器当有要用到AreaService的时候就创建一个。


ssm配置测试_第25张图片
image.png

超级管理员是可以对Area做编辑的,所以可以从超级管理员的维度入手来编写我们的AreaController
首先创建web.superadmin包,并且创建类
AreaController
@Controller确定这个类是Controller
@RequestMapping("/superadmin")这个是url路由相关,就是我们想要调用AreaController方法的话,必须是在superadmin路径下调用的。
HashMap,key是不能重复的。
@ResponseBody是把这个方法返回的转换为json


ssm配置测试_第26张图片
image.png
ssm配置测试_第27张图片
image.png
ssm配置测试_第28张图片
image.png

启动服务器,通过页面来访问


image.png

ssm配置测试_第29张图片
image.png

总结:ssm框架实现功能步骤
1、在dao层创建出我们想要的对象的接口,然后定义相关的方法,并且在mapper文件下创建跟这个dao对应的xml文件来。然后在这个xml文件中定义我们这个方法所要用到sql语句。
2、在service就调用我们的dao的方法,返回我们想要的数据,然后将它返回到controller层。
3、我们controller获取数据之后就将他们返回前台。
所涉及的接口,对于dao层是不需要标签的,对于service层除了定义接口之外还要定义接口的实现类,这个实现类需要一个@Service标签来表面这个类是一个Service的实现类。这样再用我们需要用到这个类的地方,spring就会自动将它注入进来。然后还用到@Autowired标签,告诉spring我们这里需要用到这个对象请你将它注入进来。在controller里需要用到
@Controller标签,表明这是一个controller类,@RequestMappering是来指定我们的路由的。@ResponseBody是把返回的转换为json。此外还有ut的测试,首先创建一个基类,@RunWith(SpringJunit4ClassRunner.class)是要告诉spring是要用这个SpringJunit4ClassRunner类来跑我们的单元测试的。@ContextConfiguration({“classpath:spring/spring-dao.xml, classpath:spring/spring-service.xml”})标签是来告诉spring在这个类启动的时候要加载这个配置文件。
最后创建测试类

扩展在chorme显示json更加美观
https://www.cnblogs.com/whycxb/p/7126116.html
eclipse快捷键
https://blog.csdn.net/hevicky/article/details/7239977
高并发
https://www.cnblogs.com/lr393993507/p/5909804.html
23种设计模式
https://www.cnblogs.com/tongkey/p/7170826.html

springmvc:dispatcherServlet是整个mvc框架中最核心的一部分,它主要来拦截符合要求的外部请求。并把请求分发到不同的控制器去。根据控制器处理后的结果生成相应的响应发送到客户端。面试前可以读下源码。
spring:ioc就是由spring控制对象的生命周期和对象间的关系的,而非程序中由代码直接操控。好比本来我们是主动出击去找男女朋友的,但是现在引入了媒婆,我们告诉媒婆我们喜欢的类型,媒婆去找符合的对象来推送给我们。ioc在spring里就是通过di和依赖注入实现的,主键之间的依赖关系由容器在运行期决定。由容器动态地将某种依赖关系注入到主键中。比如对象A需要操作数据库,以前我们需要在A中编写代码来获得一个connection对象,有了spring之后我们只需要告诉spring,A中需要一个connection,至于这个connection怎么构造何时构造A不需要知道。在系统运行时,spring就会制造一个connection然后注入到A中。而Aop就是例如我们做增删改查操作都需要做权限验证,我们并不希望权限验证的代码杂糅在增删改查的代码中,我们可以通过aop在程序运行的时候动态的将我们的权限代码织入到我们的增删改查前面。已完成权限的验证,aop的实现方式就是动态代理,动态代理包括jdk和cglib
mybatis:orm

你可能感兴趣的:(ssm配置测试)