
SpringBoot
孤注一掷 、
这个作者很懒......
展开
-
mybatis 自动生成example的问题
一开始数据库中的字段为 mediumtext,当查询该字段时一直为null。查看发现对应的xxExample中缺少相应函数,将类型改为varchar(200),问题解决。原创 2022-04-01 11:05:34 · 828 阅读 · 0 评论 -
6-11 集成Validation做参数校验
对电子书查询和保存做参数校验集成spring-boot-starter-validation对保存接口和查询接口增加参数校验校验不通过时,前端弹出错误提示首先pom.xml中添加内置依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validat原创 2022-03-05 16:08:07 · 551 阅读 · 0 评论 -
6-10 增加删除电子书功能
电子书管理页面,点击某一行的删除按钮式,删除该行电子书后端增加删除接口前端点击删除按钮时调用后端删除接口删除时需要有一个确认框添加:注意要使用@DeleteMapping。{id}会自动映射 @PathVariable Long id修改:添加气泡确认窗新增删除事件最后返回事件。注意: 由于后端id使用的是long类型,前端是number类型,雪花算法id在前后端交互时会产生精度损失,造成前端获取的id与后端不同,产生问题。解决方法:将lon...原创 2022-03-04 22:11:18 · 908 阅读 · 0 评论 -
6-9 雪花算法与新增功能
新增工具类:/** * Twitter的分布式自增ID雪花算法 **/@Componentpublic class SnowFlake { /** * 起始的时间戳 */ private final static long START_STMP = 1609459200000L; // 2021-01-01 00:00:00 /** * 每一部分占用的位数 */ private final static long原创 2022-03-04 21:30:33 · 228 阅读 · 0 评论 -
6-8 完成电子书编辑功能
分三步:一、增加后端保存接口二、点击保存时,调用保存接口三、保存成功刷新列表修改:一般保存、更新类的接口用PostMapper。注意,要加上@RequestBody 注解。json方式post提交要用这个注解。当用form表单方式post提交时不用注解。保存成功后,会去刷新列表。所以不需要返回任何东西。保存的请求参数和domain中的一样。save既支持新增,也要支持更新。根据传进来的req的id,有值说明是更新。修改:在点击保存的时候...原创 2022-03-04 20:20:25 · 226 阅读 · 0 评论 -
6-7 制作电子书表单
去ant design vue 上寻找异步关闭框编辑框显示电子书表单。修改:点击编辑按钮会调用edit 方法。新增:修改:下面实现点击每一行编辑按钮,弹出编辑框。修改:方法带上record参数。上面slot是按钮的渲染,record即对应一行一行的数据,然后将模态框中的内容修改为整个表单:对应的model,绑定了一个变量ebook,这是一个新的响应式变量。所以我们要在下面定义一下。新增一个响应式变量ebook:修改:...原创 2022-03-04 18:30:00 · 287 阅读 · 0 评论 -
6-6 前后端分页功能整合
前端修改列表查询分页参数前端修改接受列表查询结果电子书管理页面和首页都需要改。pagination 表格分页组件内置了一些属性:current,pageSize等下面作出修改:下面修改首页布局。写1000大小是为了全部展示出来。结果:...原创 2022-03-04 17:38:06 · 531 阅读 · 0 评论 -
6-5 封装分页请求参数和返回参数
首先封装请求参数,新建:用泛型来写list。让EbookReq继承PageReq。修改:测试:结果:这样分页就变成一个动态的参数了,是由前端传进来的。原创 2022-03-04 15:05:09 · 547 阅读 · 0 评论 -
6-4 使用PageHelper实现后端分页
首先,引入插件<!-- pagehelper 插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.13</version&原创 2022-03-04 14:35:12 · 504 阅读 · 0 评论 -
6-3 电子书表格展示
在ant design 上寻找表格实例:代码如下:<template> <a-table :columns="columns" :data-source="data"> <template #name="{ text }"> <a>{{ text }}</a> </template> <template #customTitle> <span>.原创 2022-03-04 11:06:13 · 642 阅读 · 0 评论 -
6-2 增加电子书管理页面
增加一个页面需要增加三部分的内容:单独页面、菜单和与页面绑定的路由。作出以下改动,取消懒加载:将vue页面命名改为page.vue 和 my-page.vue 的风格。首先修改路由:然后加一个菜单,作以下处理:添加一个页面:测试结果:并且点击可以跳转:...原创 2022-02-28 18:10:16 · 405 阅读 · 0 评论 -
5-9 SpringBoot AOP的使用
配置AOP,打印接口耗时、请求参数、返回参数。新建:@Aspect@Componentpublic class LogAspect { private final static Logger LOG = LoggerFactory.getLogger(LogAspect.class); /** * 定义一个切点 */ @Pointcut("execution(public * com.swk.*.controller..*Controller.原创 2022-02-28 17:36:43 · 580 阅读 · 0 评论 -
5-8 SpringBoot拦截器的使用
配置拦截器,打印接口耗时新建:@Component public class LogInterceptor implements HandlerInterceptor { private static final Logger LOG = LoggerFactory.getLogger(LogInterceptor.class); @Override public boolean preHandle(HttpServletRequest request, H原创 2022-02-28 16:47:59 · 627 阅读 · 0 评论 -
5-7 SpringBoot过滤器的使用
配置过滤器,打印接口耗时。新建如下:内容:@Component public class LogFilter implements Filter { private static final Logger LOG = LoggerFactory.getLogger(LogFilter.class); @Override public void init(FilterConfig filterConfig) throws ServletException.原创 2022-02-28 16:24:02 · 236 阅读 · 0 评论 -
5-6 使用axios拦截器打印前端日志
打日志是前端常用的简单的调试方式。每次调用后端接口之前打一个日志,发送的结果的回调函数里面,我们再打一个日志。撒大声地axios提供了拦截器功能,我们可以在拦截器里面,把请求日志和返回参数一起打印出来。 这样业务代码里面就不用去打。先在main.ts中添加如下:/** * axios拦截器 */axios.interceptors.request.use(function (config) { console.log('请求参数:', config); retur..原创 2022-02-28 15:49:27 · 1567 阅读 · 0 评论 -
5-5 Vue CLI多环境部署
一、增加开发和生产配置文件这个只能访问本机,一般会添加一个不同环境的配置,如下在web文件夹中新增新增如下:使用process.env.xxx读取环境变量。然后作如下修改双击测试结果如下:下面修改编译:(打成静态的包,即dist文件夹下的内容,发布的话就是发布这些静态文件)这里可以修改启动的端口:将axios请求域改为读配置文件:测试结果成功:然后添加如下:这样使代码更加简洁测...原创 2022-02-28 13:34:48 · 566 阅读 · 0 评论 -
5-4 电子书列表界面展示
安装图标库npm install --save @ant-design/icons-vue然后导入图标库,对main.js修改如下:在EbookService.java中添加动态sql来使不加条件时查询全部的电子书信息。Home.vue调整如下:<template> <a-layout> <a-layout-sider width="200" style="background: #fff"> <a-menu.原创 2022-02-27 18:06:37 · 384 阅读 · 0 评论 -
5-3 Vue3数据绑定显示列表数据
Vue的核心功能:数据双向绑定。前端拿到后端的数据,将它显示到页面上。初始化的一些逻辑,建议都写到生命周期函数如:onMounted里面。setup就放一些参数定义,方法定义。setup执行的时候界面还没渲染好,这时候如果去操作界面元素会报错。因此要多利用生命周期钩子函数。页面改动如下:执行后。可知整个执行的逻辑。接下来就要把后端拿到的数据放到页面上去。首先从response里面把队一行的电子书列表数据拿出来,第一种方法:将一个数据变成ref变量。.原创 2022-02-27 16:31:51 · 1256 阅读 · 0 评论 -
5-2 集成HTTP库axios
执行如下命令:npm install axios@0.21.0 --save显示集成结果。在Home.vue中作如下修改。运行后端和前端,如下报错是 前后端分离常见的跨域问题。后端不信任前端,来自一个IP端口的页面(vue项目),要访问另一个IP端口的资源(SpringBoot请求接口),会产生跨域访问。新建跨域配置文件,@Configurationpublic class CorsConfig implements WebMvcConfigurer {原创 2022-02-27 15:58:09 · 382 阅读 · 0 评论 -
4-7 制作vue自定义组件
将header和footer提取成公共的组件。props用于父子组件之间传递数据新建the-header和the-footer组件,如图:在App.vue中,添加<script>.....</script>1.import组件页面2.components加入该组件3.在template中使用组件如图:the-footer组件同理。注:勾选这个可以追加到上一次提交。...原创 2022-02-25 22:36:56 · 410 阅读 · 0 评论 -
4-6 网站首页布局开发
App.vue中修改为以下内容:<template> <a-layout id="components-layout-demo-top-side-2"> <a-layout-header class="header"> <div class="logo" /> <a-menu v-model:selectedKeys="selectedKeys1" theme="dark"原创 2022-02-25 21:50:03 · 421 阅读 · 3 评论 -
4-5 集成Ant Design Vue
UI界面方法一:基于原生的html,css,js。方法二:基于第三方css库,如bootstrap。但是有些组件要求引入jQuery。方法三:基于Vue 的 UI 组件。Vue UI组件用法相通。安装 ant design vue,执行以下命令。npm install ant-design-vue@2.0.0-rc.3 --save安装成功。下面引入,在main.ts里加配置。在home页面添加一个danger按钮启动后结果:...原创 2022-02-25 17:50:50 · 454 阅读 · 0 评论 -
4-4 VueCLI项目结构解析
web文件夹即是整个Vue CLI项目node_modules:存放项目依赖的js模块,类似于maven的jar包,这个文件夹不需要提交git管理。public:assets:静态资源components:组件router:路由store:全局数据存储view:页面,对于router路由App.vue:初始内容页面main.ts:初始启动(配置)文件看到#app,想到选择器,肯定有个div id=“app”,写在index.html里。Vue CL..原创 2022-02-25 17:13:13 · 370 阅读 · 0 评论 -
4-3 创建Vue CLI项目
先安装Node.jsnpm get registry //显示当前的镜像地址npm config set registry http://registry.npm.taobao.org //使用淘宝的镜像网址npm install -g @vue/cli@4.5.9 //安装4.5.9版本在项目下使用命令 vue create web选择手工,然后选择如下:(空格选中,选完后回车)选择3.x...原创 2022-02-25 16:42:56 · 314 阅读 · 0 评论 -
3-8 制作CopyUtil封装BeanUtils
新建包util,新建CopyUtil.java内容如下:public class CopyUtil { /** * 单体复制 */ public static <T> T copy(Object source, Class<T> clazz) { if (source == null) { return null; } T obj = null;原创 2022-02-24 17:48:05 · 307 阅读 · 0 评论 -
3-7 封装请求参数和返回参数
一、新建请求 rep 和返回resp,里面只需要有用的内容。然后 EbookController.java 中修改为EbookService.java中其中 BeanUtils.copyProperties(....)可以直接复制赋值。criteria是内类,即比对操作的是EbookExample。...原创 2022-02-24 17:21:21 · 313 阅读 · 0 评论 -
3-6 电子书列表查询接口开发
一、首先执行sql语句,建表ebook# 电子书表drop table if exists `ebook`;create table `ebook` ( `id` bigint not null comment 'id', `name` varchar(50) comment '名称', `category1_id` bigint comment '分类1', `category2_id` bigint comment '分类2', `description` varchar(原创 2022-02-24 16:50:08 · 975 阅读 · 0 评论 -
3-5 集成Mybatis官方代码生成器
一、阿里云中新建开发账号imoocdev和开发数据库imoocdev,与生产账号及数据库区分开,IDEA中连接开发的数据库,建表demo。二、在pom.xml中加入自动生成代码插件。<!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <.原创 2022-02-24 15:38:15 · 586 阅读 · 0 评论 -
3-4 集成持久层框架Mybatis
一、集成Mybatispom.xml中添加依赖 <!-- 集成mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version&g原创 2022-02-23 19:01:22 · 677 阅读 · 0 评论 -
3-3 IDEA数据库插件的配置
IDEA连接云数据库RDS需要用到外网地址,打开外网地址需要将访问者的ip地址加入到白名单中。之后在IDEA中新建对应的数据库按如下设置。建好后进入连接,console中输入下面sql语句建表testdrop table if exists `test`;create table `test`( `id` bigint not null comment 'id', `name` varchar(50) comment '名称', primary key (原创 2022-02-23 16:37:48 · 743 阅读 · 0 评论 -
3-2 数据库的准备(本地和阿里云数据库)
一、首先创建本地数据库imooc,设置如下:接下来创建专门访问imooc数据库的用户,点击新建用户添加所有权限。接下来再建立一个专门用来连接imooc的连接新建表test,设置如下:二、阿里云数据库的准备购买云数据库RDS Mysql,选最便宜的就可以。然后创建账号然后创建一个数据库imooc,赋予账号imooc 这个数据库的读写权限。登录数据库,测试成功即可。...原创 2022-02-23 15:37:39 · 904 阅读 · 0 评论 -
2-9 集成热部署
配置IDEA集成热部署,代码改完立即生效。引入如下依赖。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId></dependency>勾选如下:静态的自动编译。摁两次shift键,输入Registry回车,然后勾选如下:动态的自动编译。之后当触原创 2022-01-11 11:26:16 · 243 阅读 · 0 评论 -
2-8 配置文件介绍
目录一、配置文件识别二、在线yaml转properties网站三、自定义配置项一、配置文件识别这四个配置文件都可以被识别到注意:单个SpringBoot不会读bootstrap配置,要SpringCloud架构下的SpringBoot应用才会读。bootstrap一般用于动态配置,线上可以实时修改实时生效的配置,一般可配合上nacos使用。注意:当有多个配置文件有一样的配置,config下的会优先。二、在线yaml转properties网站https://t.原创 2022-01-11 11:07:23 · 323 阅读 · 0 评论 -
比较称号的工具函数(心流app项目)
比较两称号大小的工具函数,如 1.天津市北辰区第三十五(省级)2.河北省衡水市第七(市级)1>2返回 true/** * @author sun weikai */public class CompareTitle { public static Boolean CompareTitle(String title1,String title2) { String province = "省第"; String city = "市...原创 2021-04-20 20:29:16 · 139 阅读 · 0 评论 -
springboot 定时任务(每天凌晨0点更新用户的称号)
在android项目中要使用到定时调用接口来更新数据库中的战力称号...(类似王者荣耀的称号)/** * @author sun weikai */@Component@Configuration //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling // 2.开启定时任务public class SetTitleScheduled { @Resource UserMapper userMapper; @Reso原创 2021-04-20 20:20:01 · 7162 阅读 · 0 评论 -
springboot 超级简单部署项目方法
1.使用宝塔面板,安装 java项目一件部署2.上传jar包3.打开一件部署的软件,添加项目4.在文件夹中找到上传的jar包(只要jar包即可),配置端口,确定即可注意:如果显示端口占用则需要到服务器中找出占用端口的进程并杀死,才可添加相应端口的项目!!可使用xshell7进入服务器netstat -anp | grep 8888(自己设置的端口号)sudo lsof -i:8800 //sudo lsof -i:<端口号> 查pid .原创 2021-04-20 20:15:47 · 507 阅读 · 0 评论 -
springboot前后端项目部署阿里云服务器
后端:将项目打包成jar包1.修改后端代码的配置文件pop.xml<packaging>jar</packaging> <build> <finalName>demo-ticket</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId&原创 2020-12-21 18:46:21 · 506 阅读 · 0 评论 -
SpringBoot 第一个程序
一、第一个springboot程序jdk1.8 maven 3.6.1 springboot:最新版 IDEA新建项目在启动类的同级目录下新建以下的包,然后编写HelloController控制器中编写下面内容,并运行二、原创 2021-03-16 23:34:04 · 124 阅读 · 0 评论