一:java简单的api接口实现
1.创建java项目工程
新建项目工程
![](https://i-blog.csdnimg.cn/blog_migrate/6c8feaa2f0e8c2e2027328a3aa6db171.png)
![](https://i-blog.csdnimg.cn/blog_migrate/433821ba03959c928df5b26c97755368.png)
Package包类似与.net中的类库;
![](https://i-blog.csdnimg.cn/blog_migrate/cc89e1be7821436a2c55fb707a8d3c8f.png)
引入对应的依赖包,这些生成之后就会在pom.xml文件中引入了
![](https://i-blog.csdnimg.cn/blog_migrate/dabab8e412644263205863556062c8d7.png)
最后就是项目名称和报错地址了
![](https://i-blog.csdnimg.cn/blog_migrate/47f78227aff00cbcbb79f774ee0331fa.png)
创建成功后项目结构 resources静态资源文件放置位置
![](https://i-blog.csdnimg.cn/blog_migrate/188ed28fbd713e3ff3b547f455457629.png)
2.配置applocation.yml配置文件,链接mysql数据库
![](https://i-blog.csdnimg.cn/blog_migrate/d20c19ff53bd55e5d7ffbcf1b60aaa01.png)
将原来有的applocation.
properties文件改为yml(个人习惯)进行配置端口号,数据库链接字符串等相关信息,配置完成后idea默认的启动右上角(有内置的tomcat不需要重新配置tomcat)启动后再控制台最终提醒
seconds (JVM running for 6.058)
则为启动成功
3.构建项目版块并引入热启动 spring boot dev tool+FastJson(alibaba的json处理类)依赖包
![](https://i-blog.csdnimg.cn/blog_migrate/388ef37d6cd99939664c2caf0cec178e.png)
项目结构api就好比webApi中的apicontroller控制器,mapper接口层配合resources中的xml文件外加框架对mapper的xml解析机制实现数据访问层类似.net中三层中的DAL层,model则为实体层,service服务层好比.net中BLL业务逻辑层。
注意:在配置和页面名称配置过程中注意的是,静态资源中添加的xml文件名要与mapper中的文件名一一对应。
![](https://i-blog.csdnimg.cn/blog_migrate/182a91ce29be6bda9797d6e34bee875c.png)
在编写xml文件过程中要注意的是xml中mapper标签
namespace 对应的是当下xml标签反射到的接口类名称。
配置mybatis的mapper解析关系类型在applocation.yml文件中
![](https://i-blog.csdnimg.cn/blog_migrate/5bb3572cfd5748c76d1c8a9dbcadf207.png)
每个java工程中都有一个
Application,程序启动主入口,类似于.net中的Global.asax;
@
MapperScan注解是扫描指定的包名下的接口类并注册:注意只有接口类才会被扫描注册,其它的类则会忽略
![](https://i-blog.csdnimg.cn/blog_migrate/58ce2dd04025765e60e968a97d34f39b.png)
4.项目基本的结构创建好,来实现第一个java接口
(1)编写实体类:
![](https://i-blog.csdnimg.cn/blog_migrate/53c7e536d90cf8d682194762aa02ae3d.png)
(2) 编写数据访问层接口:
![](https://i-blog.csdnimg.cn/blog_migrate/1f228df738c3818351350076e5d2b9bf.png)
声明插入用户和查询用户的接口,然后编写对应的实现数据访的mapper.xml文件
![](https://i-blog.csdnimg.cn/blog_migrate/09f956e6c3147b4ad79bdece720d2bc8.png)
(3)编写业务逻辑层中的方法:
编写spring框架的代码时候,一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量,srping将直接采用java反射机制对私有成员变量进行自动注入来进行使用,例如下图中service类的构造函数的注解,
声明
private
UserMapper
userMapper
变量在注解后直接可使用UserMapper中的声明的接口不需要再new这个对象——ioc依赖注入。
![](https://i-blog.csdnimg.cn/blog_migrate/2346796c755b012c99ee567dc0a59301.png)
(4)Api接口的实现:
@RestController=@Controller+@ResponseBody 结合作用。
在这注解controller常用的有:@RestController和@Controller
只使用@ResutController注解controller不能返回jsp页面和配置的视图解析器InternalResurceViewResolver不起作用,这地方的区别就类似于.net中webApi和MVC控制器的区别,2种注解使controller通信通道不同。
@RequestMapping对方法或controller都能注解共同点注解后可设定新的路由规则,类似.net中的Router一样,对方法的注解可以设定方法的http请求方式。
![](https://i-blog.csdnimg.cn/blog_migrate/e36f0a7e2996b3b3cc226e35dfe93294.png)
(5)运行调试:
![](https://i-blog.csdnimg.cn/blog_migrate/ca8b4739bdc33353bc63fdf55a361f78.png)
IDEA运行直接可以用内置的tomcat来运行项目,不需要再额外配置
接口访问成功
![](https://i-blog.csdnimg.cn/blog_migrate/76fc4cff39b86c5777543fdb06e48dd3.png)
注意:在断点调试过程中出现
Method breakpoints may dramatically slow down debugging 提示时说明某个断点卡住了,Ctrl+shift+F8 打开Breakpoints看看 关闭前面勾选
![](https://i-blog.csdnimg.cn/blog_migrate/1bc241ae07f11fa60292ff8ef2a5c40c.png)
二.实现数据分页及接口权限验证
1.数据分页:
首先引入分页jar包(在pom.xml中添加引入包文件信息)
![](https://i-blog.csdnimg.cn/blog_migrate/594d7bcf2deb66b0b9dcfdea5f350021.png)
设置分页操作的的数据库类型
![](https://i-blog.csdnimg.cn/blog_migrate/24accf503a9898ecbc93e15282f2e8a8.png)
然后在applocaiton.yml中配置对应的分页信息
![](https://i-blog.csdnimg.cn/blog_migrate/466e6ffa2ccc95819181152e8bbd1879.png)
实战示例:
mapper.xml文件
![](https://i-blog.csdnimg.cn/blog_migrate/6ea94dea81aa4283859919f52be0f1f7.png)
mapper接口层
![](https://i-blog.csdnimg.cn/blog_migrate/3f5cec1e10d5ec8f6ddc95bf462ebfc3.png)
service服务层
在调用查询方法之前注册PageHelper.startPage方法意在查询语句sql执行之前追加分页和排序函数
![](https://i-blog.csdnimg.cn/blog_migrate/ab2c1f3c9dec141d35de40d218b1ffc2.png)
apicontroller层
在调用service中的方法后获得查询结果userlist,然后再由PagInfo序列化重构后获取到分页后的信息字段属性,例如总行数等
![](https://i-blog.csdnimg.cn/blog_migrate/fffa6921e2d35480142589aebe9c6a9a.png)
执行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/589b2442b549792faf8558d0efd533c4.png)
一个简单的java工程创建完成,供初学者参考:
源码下载