SpringBoot
学些SpringBoot的记录
Tellme3
任务艰巨在于漫长。
展开
-
43、运维(临时属性 )
运维(临时属性 ) 场景:加入你的程序已经在服务器运行了使用的是80端口,现在80端口启动了更重要的服务,我们要将以前的80端口任务恢复到8080第一步:查看配置端口 第二步:临时属性覆盖原来的属性 第三步:设置更多临时属性来测试 第四步:属性加载顺序(有时候可能出现bug就是别人在更高的层次修改了) 小结:原创 2022-10-24 08:24:09 · 74 阅读 · 0 评论 -
运维Springboot打包插件(其实就是springboot提供的maven插件)
运维Springboot打包插件(其实就是springboot提供的maven插件)第一步:若是将其maven打包插件注释掉,分别打包比较两者文件1、注释前 2、注释后 第二步:比较 1、没有插件 =》 ==》2、 3、有插件的在class文件下才有与没有插件的相同文件(boot打包后将没有插件的所属文件都放在了一个文件中(/class)) 小结:原创 2022-10-23 20:02:10 · 510 阅读 · 0 评论 -
40、运维(工程打包和运行(打包到服务器,服务器运行))
运维(工程打包和运行(打包到服务器,服务器运行))运维目录 为什么要打包(因为要先从个人电脑打包到专用服务器)打包流程:第一步:clean 第二步:package(这里如果测试未禁止,其测试也会执行。所以后面要禁掉) 第三步:在target去到打包的jar包路径 第四步:Windows环境下运行(在地址栏中搜cmd) 第五步:cmd上java -jar输入工程名(自动补全:输入第一个字母再点Tab键自动补全) 第六步:idea不启动都可以访问(这个cmd就是服务器了) 第七步:关闭test测试 小结:原创 2022-10-23 19:57:53 · 283 阅读 · 0 评论 -
39、Springboot基础总结(整合第三方技术,和后续学习)
Springboot基础总结(整合第三方技术,和后续学习)1、 2、整合第三方技术 3、原创 2022-10-23 19:55:46 · 667 阅读 · 0 评论 -
38、条件查询(什么是条件查询就是在分页的时候条件也带过去(所以在分页中写查询))
条件查询(什么是条件查询就是在分页的时候条件也带过去(所以在分页中写查询))第一步:先看这几个数据在哪 1、在这且没有绑定数据模型 第二步:这个几个数据怎么获取1、 第三步:这几个数据怎么传到后台 报错改了下 小结:原创 2022-10-23 19:54:16 · 312 阅读 · 0 评论 -
37、分页功能维护(删除bug(在删除最后一条数据页面显示有问题))
分页功能维护(删除bug(在删除最后一条数据页面显示有问题))问题是如果我们删除的是第三页的最后一个数据,我们就应该显示第二页页面,而不是第三页的空页面第一步: 第二步:强转类型(page.getPages()是int类型,而前面的getPage是long类型) 小结:原创 2022-10-23 19:50:42 · 158 阅读 · 0 评论 -
36、分页功能(就是改之前的列表功能)
分页功能(就是改之前的列表功能)第一步:先想一下(可以将前面的列表不要了,展示分页的列表就ok了) 第二步:发送异步请求 第三步:加载数据 第四步:详细数据 第五步:实现翻页按钮(切换页码) 小结:原创 2022-10-23 09:03:53 · 73 阅读 · 0 评论 -
35、异常消息处理(也就是消息一致性处理)
异常消息处理(也就是消息一致性处理) 第一步:模拟异常 第二步:使用专用专用的异常处理器(springMvc中有提供(springmvc又属于controller层),所以异常处理器放在controller) 第三步:定义类成为springmvc的异常处理器(@RestControllerAdvice) 第四步:拦截所有异常(@ExceptionHandler) 第五步:对用户的信息通知31、对R重新构造方法 2、可以在控制台输出(好维护) 第六步:解决页面上的处理(就不能写死了,而是传后端传过来的消息)原创 2022-10-23 09:00:15 · 188 阅读 · 0 评论 -
34、修改功能(完整(加载数据+修改(put)))
修改功能(完整(加载数据+修改(put)))第一步:和添加类似 第二步:关闭弹窗(其中前面取消只关闭了添加的弹窗) 小结:原创 2022-10-23 08:56:53 · 84 阅读 · 0 评论 -
修改功能(只是完成加载了数据部分)
修改功能(只是完成加载了数据部分)第一步:先找修改按钮绑定的什么 第二步:也是按照列表功能写(获取数据) 第三步:在获取数据后就要加载数据 第四步:数据加载后要弹出窗口看 第五步:处理失败(例如两个页面,一个页面删除数据后另一个再去删除) 第六步:再刷新数据(finally) 第七步:删除有同样问题 小结:原创 2022-10-23 08:55:40 · 54 阅读 · 0 评论 -
32、删除功能(可以绑定行数据)
删除功能(可以绑定行数据)第一步:找删除按键绑定的什么 第二步:先完成删除 第三步:删除成功后就是提示信息了(删除成功,删除失败) 第四步:删除成功提示消息后要刷新页面 第五步:防止手抖误删(删除时再弹个弹窗提醒) 小结:原创 2022-10-23 08:53:03 · 81 阅读 · 0 评论 -
31、添加功能(也就是按键后的小界面)
添加功能(也就是按键后的小界面)逻辑流程:第一步:我们先找新建按钮(绑定了) 第二步:这个干什么呢,就是将新增的页面展示出来 1、 而其中这个页面是不展示出来的因为这个visible属性 false表单不可见 第三步:就是找上面的确定按钮了(handleAdd) 其中这个finally就是不管成不成功都要刷新一下数据 第四步:清理表单的存在数据(在每次打开的时候重置表单)为空就没数据了 弹出窗口就调用一下就好了 第五步:取消按键(取消就是关闭弹窗) 再给他个消息 小结:原创 2022-10-22 21:17:07 · 386 阅读 · 2 评论 -
30、列表功能(在页面中显示列表)
列表功能(在页面中显示列表)前面我们请求已经完成,后面就是数据处理,而前面我们的数据就是在res对象的data属性之中。而我们就是让其展示在页面区域中 第一步:小结:原创 2022-10-22 21:10:18 · 303 阅读 · 0 评论 -
29、前后端调用(axois发送异步请求(在books.html中))
前端发送异步请求,调用后端接口。原创 2022-10-22 21:05:18 · 299 阅读 · 0 评论 -
28、表现层消息一致性处理(再使用一个类来整理格式(也就是返回结果模型))
表现层消息一致性处理(再使用一个类来整理格式(也就是返回结果模型)) 第一步: 第二步:@Data就不用写get/set方法了 第三步:改动controller的BookController方法 第四步:优化(在R类中用构造方法)且所有方法都变为R类型 后面这里不同是因为其中的后数据返回即data 运行结果: 小结原创 2022-10-22 21:03:25 · 123 阅读 · 0 评论 -
27、表现层标准开发(也就是controller层)
表现层标准开发(也就是controller层) 第一步:创建controller层(BookController类) 第二步: 第三步:写方法(其注意rest风格)*查找方法一般为GetMapping例如:getAll,GetMapping(“{id}”)getById(@PathVariable(因为其中带有id其形式为这种)) GetMapping(“{id}”)getPage分页*save PostMapping 其中是请求体(所以是@RequstBody)*update PutMaping原创 2022-10-22 08:49:57 · 251 阅读 · 0 评论 -
26、业务层快速开发(mp实现)
业务层快速开发(mp实现) 提供了若干方法 第一步:接口 第二步:实现类 也可以自己定义方法自己测试 第三步:测试(只是有的方法名比较前面有所改变)测试包下类名有所改变 小结:原创 2022-10-22 08:48:03 · 102 阅读 · 0 评论 -
25、业务层标准开发(也就是service)
这里其中的保存是.insert方法又因为其中insert返回都是int即影响行所以>0;*save类型为Boolean类型(成功与否就好)参数(Book book)、*update类型为Boolean类型,参数(Book book)*delete类型为Boolean类型,参数(Book book)*getById类型为Boolean类型,参数(Integer id)即可(根据id查找)*getAlll类型为List类型,参数()没有*getPage分页类型为(Ipage原创 2022-10-22 08:44:44 · 286 阅读 · 0 评论 -
24、数据层标准开发(条件查询(这里演示like))
数据层标准开发(条件查询(这里演示like)) 第一步:根据.selcetList方法可可知道其中的查询条件就是queryWrapper 第二步:new一个QueryWrapper对象,并扔给.selcetList查询就ok了 第三步:添加条件 第四步:lamdaQueryWrapper优化(上面其中name属性名可能写错) 第五步:再次优化(防止空对象)like(可以有判断条件) 运行结果 小结原创 2022-10-22 08:40:37 · 77 阅读 · 0 评论 -
23、分页功能(使用拦截器处理(就是为了动态拼接sql也就是后面的limit))
分页功能(使用拦截器处理(就是为了动态拼接sql也就是后面的limit))分页的形式应该是 select *from ??limit??这种(但mp并不是默认这样的而是要自己配置)使用拦截器处理(不管配置什么其实本质还是spring程序受spring管理(spring管理bean)),所以我也要使用第三方bean的方式来写这个拦截器 第一步:(配置拦截器MybatisPlusIntercptor) 第一步:变成一个配置类(配置信息可以被读取到)第二步:做对应的bean第三步:先new一个拦截器的壳,再添加原创 2022-10-22 08:38:10 · 517 阅读 · 0 评论 -
22、ssmp整合案例(数据层开发,开启MybatisPlus日志)
ssmp整合案例(数据层开发,开启MybatisPlus日志). 总结原创 2022-10-22 08:33:29 · 82 阅读 · 0 评论 -
21、ssmp整合案例(数据层开发)
ssmp整合案例(数据层开发)第一步:导入mybatis-plus和Druid对应的starter 第二步:配置mybatisPlus对应的配置(id用自增策略而不是默认的雪花算法) 第三步:bookDao(也就是接口层(映射的sql语句))去继承BaseMapper并给定泛型 第四步:测试增删改查。 总结:原创 2022-10-19 13:04:37 · 130 阅读 · 0 评论 -
20、ssmp整合案例(实体类开发lombok库,@Data的实体类上的注解)
第一步:引入lombok坐标 第二步:@Data(代替get,set....操作) 总结:原创 2022-10-19 13:00:29 · 66 阅读 · 0 评论 -
19、SSMP模块的创建
SSMP模块的创建第一步:需要内容 Mybatis-puls第二步:手动加依赖 第三步:.yml设置端口原创 2022-10-19 12:59:09 · 98 阅读 · 0 评论 -
18、SSMP整合案例(就是个增删查改,分页这些功能)
SSMP整合案例(就是个增删查改,分页这些功能) 展示: 小结:原创 2022-10-19 12:57:31 · 87 阅读 · 0 评论 -
17、Springboot整合Druid
Springboot整合Druid第一步: 第二步:导坐标 第三步:配置 第四步:测试 总结:原创 2022-10-19 12:55:55 · 219 阅读 · 0 评论 -
16、Springboot整合mybatis-plus(不必再去写那些增删查改了)
Springboot整合mybatis-plus(不必再去写那些增删查改了) 第一步:可以用阿里云模板(也可以去官网找对应的坐标) 第二步:映射的sql语句文件用BaseMapper就ok了 第三步:配置mp文件查找前缀为tb1_的表 第四步:测试(前面的准备和mybatis一样只是没有映射的sql语句了)原创 2022-10-18 23:41:25 · 122 阅读 · 0 评论 -
15、Mybatis的版本过低可能的错误(需要设置时区,需要更新驱动)
Mybatis的版本过低可能的错误(需要设置时区,需要更新驱动) 改进:原创 2022-10-18 23:39:34 · 288 阅读 · 0 评论 -
14、整合第三方技术(整合mybatis)
第三步:定义数据层接口与映射配置(其中也要先有实体类)第五步:在测试类中注入dao接口,测试功能。第一步:选择自己需要的技术。原创 2022-10-18 07:59:50 · 174 阅读 · 0 评论 -
13、整合第三方技术(整合JUnit,@SpringBootTest的classes属性:指定其引导类)
整合第三方技术(整合JUnit,@SpringBootTest的classes属性:指定其引导类) 总结:原创 2022-10-18 07:56:46 · 225 阅读 · 0 评论 -
12、整合第三方技术(整合JUnit,主要是@SpringBootTest这个注解)
整合第三方技术(整合JUnit,主要是@SpringBootTest这个注解) 第一步:创建如下目录 第二步:在BookDaoImpl类上加入@Repository(定义为spring管控的bean) 第三步:测试环节第一步:注入想要测试的对象(并在上用@Autowired自动装配) 第二步:执行要测试对象的方法原创 2022-10-18 07:55:53 · 91 阅读 · 0 评论 -
11、yaml读取数据(自定义封装局部数据)
yaml读取数据(自定义封装局部数据) 第一步:定义数据封装yaml文件中对应的数据 第二步:定义为spring管控的bean(@Component注解) 第三步:指定加载的数据(@ConfigurtionPropertoes) 第四步:加载数据 测试结果:原创 2022-10-18 07:54:19 · 177 阅读 · 0 评论 -
10、yaml数据读取(封装全部数据到一个Environment对象,再用getProperty来读取)
yaml数据读取(封装全部数据到一个Environment对象,再用getProperty来读取) 这样就不用在到上面一直使用@value来读取了,直接使用getProperty读取第一步:定义一个对象 第二步:自动装配@Autowired(通过自动装配就将所有数据封装到了一个对象中) 第三步:使用数据(getProperty) *其中痛点仍然要去看其中的属性名。所以封装对象最好的不是全部封装而是封装一部分,针对性的封装原创 2022-10-18 07:52:45 · 401 阅读 · 0 评论 -
9、Yaml数据读取数据(属性名引用方式引用属性)
Yaml数据读取数据(属性名引用方式引用属性) 可以使用其属性名引用方式属性(这样改掉其中一个东西,另一个引用的就会跟着变)例如:这里windows改变下面也要改变(麻烦) 改进原创 2022-10-18 07:50:46 · 242 阅读 · 0 评论 -
8、Yaml读取单一属性数据(配置文件是有xml,yaml,properties这三种。只是yaml后缀可以用.yml)
Yaml读取单一属性数据(配置文件是有xml,yaml,properties这三种。只是yaml后缀可以用.yml) 第一步:先private定义一个属性 第二步:运用@value注解+${}读取原创 2022-09-20 11:05:04 · 184 阅读 · 0 评论 -
7、yaml给实体类赋值(用@ConfigurationProperties(参数为yaml对象)扩展名以yml为主流)
yaml给实体类赋值(用@ConfigurationProperties(参数为yaml对象)扩展名以yml为主流) 第一步: 第二步: 高级用法: 第三步: 第四步: 原始方法:(也就是application.properties用@value注解给实体类赋值)第一步: 第二步:测试 第二种方法:用这种配置(实体类用注解@PropertySource(里面是路径名))原创 2022-09-20 11:03:13 · 209 阅读 · 0 评论 -
Springboot辅助功能(内嵌tomcat服务器)
Springboot辅助功能(内嵌tomcat服务器)原创 2022-09-20 11:00:21 · 220 阅读 · 0 评论 -
2、Springboot引导类(会初始化spring容器,会扫描bean)
Springboot引导类(会初始化spring容器,会扫描bean) ApplicationContext应用上下文的接口名(就是容器对象),所以这个就是一个spring容器 然后有容器之后,就要干容器的是就是拿bean 而我们程序中controller里面这个就是个bean原创 2022-09-20 10:57:42 · 115 阅读 · 0 评论 -
1、application.yaml(和application.properties类似的配置文件但更加强大,yaml比以前的xml更加强大)
application.yaml(和application.properties类似的配置文件但更加强大,yaml比以前的xml更加强大) 强大之处:yaml可以直接给实体类赋值 Yaml的语法原创 2022-09-20 10:55:40 · 101 阅读 · 0 评论