springboot
Pr Young
一个踏实努力,充满激情的程序员!
展开
-
@Async注解
方法在一个单独的线程中异步执行,调用异步方法后,开启单独线程执行这个异步方法里的内容。在主应用程序类上添加@EnableAsync注解,开启异步支持。原创 2023-06-16 22:19:43 · 71 阅读 · 0 评论 -
如何跑通一个java项目
要想看懂代码:主要是看Controller,Service,Repository(或者叫Dao),Model(这里存储的是对象)先读Readme(这里会介绍项目结构和技术选型),这里还会告诉你们怎么跑起来这个项目,比如让你先安装数据库,然后.....注意:从 GitHub 上下载项目时,默认情况下会将项目下载到当前工作目录中,你也可以指定先下载路径。Halo项目:最好的博客项目(基于gradle而不是基于maven进行管理的)查找项目代码的途径:github,码云,掘金网。原创 2023-05-29 17:19:07 · 1443 阅读 · 0 评论 -
清晰易懂IoC
改进:这样服务端(Service层)的代码不用改动,你客户端传进来Dao1类的对象,那就调用Dao1,那就调用Dao1类的方法。value=”Spring“ 表示给str这个属性赋值Spring(注意这里如果是ref=”XXX“,表示给这个属性赋值一个对象,这个对象已经在Spring容器里面创建好了)这段代码的问题在于,如果想要调用不同的dao层,就需要在服务端的代码Service层中进行改动。现在,服务端被动的接收对象,控制权在用户手上,服务端的代码是写死的,不需要改变。3.依赖注入的三种方式。原创 2023-05-24 16:23:34 · 640 阅读 · 0 评论 -
spring循环依赖
(1)自已依赖自己的直接依赖。(2)两个对象之间的直接依赖。(3) 多个对象之间的间接依赖。原创 2023-02-04 22:19:08 · 82 阅读 · 0 评论 -
yxc的springboot框架课
实况直播界面(使用websocket协议,而不是http协议,http协议只能客户端向服务器发送请求,服务器被动返回请求结果,服务器不能主动向用户发送请求,是单向的,但是websocket是双向的,服务器也可以主动向客户端发送请求)前后端不分离:服务器返回的是一个html页面,比如这里返回的就是index.html页面。前后端分离,一套后端代码可以对应多个前端(前端可以是网站,小程序,客户端)真人pk界面(也是websocket协议,人人对战,人机对战)(1)代码存档功能:你能看到你的历史所有版本的代码。原创 2023-02-02 09:00:51 · 106 阅读 · 0 评论 -
秒杀项目总结
用户登录成功后,跳转到商品列表页,商品列表页有一个详情按钮,点击详情跳转到商品详情页,在这个页面可以进行秒杀(在秒杀还没开始的时候,秒杀按钮是灰色的,不能按的,倒计时结束,这个秒杀按钮才可以按),秒杀成功后就会进入订单页。秒杀商品表 有人说这个表是多余的,直接在商品表中增加一个字段,这个字段为0表示普通商品,这个字段为1,表示秒杀商品,但是这样有一些问题,商品的秒杀时和平常的价格是不一样的。原创 2023-01-12 09:43:52 · 296 阅读 · 0 评论 -
尚硅谷电商毕设项目
用户把需求提交给网关服务,网关服务去注册中心中查找它需要调用的服务(也就是说注册中心能够帮助查找需要调用哪个服务)42个功能点表示差不多42套增删改查(实际上可能会多一些,可能需要写五六十套增删改查)后台管理员登录,对用户进行增加修改删除,商品进行增加修改删除,订单进行增加修改删除。用户通过浏览器登录,浏览商品,添加进购物车,购买功能。技术栈全面,使用了微服务,中间件。总共11个服务,1个注册中心。将网关服务注册到nacos里面。在网关服务中需要进行配置。原创 2023-01-05 20:27:44 · 749 阅读 · 0 评论 -
仿牛客论坛项目总结
通过表单提交数据,服务端接收到数据之后在后台查询账号是否已经被注册,邮箱是否已经被注册,如果没有,服务端就发送一封激活邮件给注册的邮箱(发送邮件功能,通过导入spring mail的maven坐标依赖),用户点击邮箱中的链接,成功激活。这样就算不法分子得到数据库的用户密码的MD5值,也无法知道用户的密码,用户登录的时候,用户输入的密码md5加密之后的结果如果和数据库中的MD5值相等,就表明密码正确。(6)status 帖子的状态,0表示这是一个正常的帖子,1表示是精华帖,2表示被拉黑了。原创 2023-01-03 15:49:53 · 2092 阅读 · 1 评论 -
拦截器Interceptor
(1)定义一个类,这个类实现HandlerInceptor接口,这个接口中有几个方法,看情况重写其中几个,里面有几个方法,preHandle方法是在调用Controller之前执行,postHandler方法是在执行完Controller之后,还没有被模板引擎渲染之前执行,afterCompletion方法是在模板引擎执行完之后执行。(2)配置这个拦截器(让一个类实现WebMvcConfigurer接口,指定这个拦截器拦截哪些请求,不拦截 哪些请求。拦截发送的请求,往请求里面加一些东西。原创 2023-01-01 15:37:54 · 147 阅读 · 0 评论 -
Thymeleaf
当在浏览器中输入/addUser时,会调用这里的addUser方法,然后跳转到user目录下的addUser.html页面(同时设置数据title为i miss CC very much)在浏览器中访问localhost:8080/addUser。将后台从数据库中查询到的数据填到静态模板中的占位符的位置。将Thymeleaf依赖添加到pom.xml文件中。原创 2022-10-16 22:53:26 · 361 阅读 · 1 评论 -
跨域问题(三种解决方法)
两个请求的协议(比如http),域名(比如说localhost或者192.168.0.0),端口号三者一模一样(其他可以不一样)才算两个请求在同一个域内,三者但凡有一个不一样都是跨域。跨域就是一个域名的网页去请求另一个域名的资源,比如你刚刚在A网站输入了自己的账号密码,然后访问B网站,B网站无法获取账号密码。比如现在前端工程想要访问后端工程中的list方法,只需要在这个方法上面添加@CrossOrigin注解即可。其实后端是有接收到请求,也给前端工程返回了数据,但是浏览器收到之后拒绝前端读取响应数据。原创 2022-12-31 11:54:27 · 5200 阅读 · 0 评论 -
如何从提交的表单里面获取数据
在这个表单中规定了:表单中的数据会emo/test这个方法。原创 2022-12-26 20:09:24 · 618 阅读 · 0 评论 -
MVC(Model,View,Controller)
MVC是指Model(模型层,数据),View(视图层),Controller(控制层)核心是DispathcherServlet(一个Servlet)(1) 客户端的请求提交给DispathcherServlet(2)DispathcherServlet查询HandlerMapping,找到处理这个请求应该调用哪个Controller。原创 2022-12-26 09:56:07 · 1428 阅读 · 0 评论 -
AOP 面向切面编程
在业务方法add,sub,mul,div的前后执行一些通用的操作(最常见的同哟个操作就是日志)返回值后通知:afterReturning advice。异常通知:afterThrowing advice。前置通知: before advice。后置通知: after advice。环绕通知: around advice。将你的代码织入事先约定的流程中。连接点就是需要要织入的位置。原创 2022-12-25 18:15:59 · 129 阅读 · 0 评论 -
bean的作用域
在web容器中,存在页面page,请求request,会话session,应用application四种作用域。一般的容器中,bean存在单例singleton和原型prototype两种作用域。原型作用域指IoC容器每次获取Bean时,都新创建一个新的Bean。重点是单例和原型两种作用域。原创 2022-12-25 12:33:25 · 62 阅读 · 0 评论 -
依赖注入 DI
再加一个Qualifier注解,两个注解组合使用,就可以实现ByName装配,也就是在容器里面中有没有名称叫做user1的对象。默认采用byType按类型进行赋值(进行装配),即在容器里面找有没有是User类的对象。主要是靠两个注解来实现依赖注入的:Autowired注解和Resource注解。默认采用byName进行装配,byName找不到就byType。依赖注入就是当属性是对象属性的时候,给这个对象属性进行赋值。2.@Resource注解 也是给对象属性赋值。1.Autowired注解。原创 2022-12-25 11:27:17 · 54 阅读 · 0 评论 -
Spring Cache
(3)@Cacheable注解 在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据,若没有数据,则调用方法后,将方法的返回值放到缓存中。(1)@ CachePut 将方法的返回值放到缓存中,具体用什么样的缓存产品,就看当前配置的环境。下面的例子就是往表中插入一行数据,并且把插入的这行数据保存到缓存里面。然后在启动类上使用@EnableCaching开启缓存支持。(2)@CacheEvict注解 删除缓存。原创 2022-11-25 16:20:11 · 310 阅读 · 0 评论 -
ThreadLocal
ThreadLocal不是一个Thread,我们用ThreadLocal为每个线程提供一份存储空间,这个存储空间里的数据只属于当前线程,别的线程无法访问当前线程的数据。创建一个ThreadLocal类的对象,由于ThreadLocal是一个泛型类,所需需要指定这个对象的类型。这里指定这个对象的类型为整数类型。我们创建的变量通常是不安全的(可能被多个线程同时修改),也就是说,这个变量是共享变量。而使用ThreadLocal创建的变量只能被当前线程访问,其他线程无法访问和修改。原创 2022-11-18 14:44:37 · 190 阅读 · 0 评论 -
瑞吉外卖 员工信息分页查询 功能实现
【代码】瑞吉外卖 员工信息分页查询 功能实现。原创 2022-11-17 22:12:51 · 151 阅读 · 0 评论 -
Json(一种数据格式,key:value)
前端页面和后端服务器之间通过json格式的数据进行通信。原创 2022-11-17 13:07:44 · 327 阅读 · 0 评论 -
瑞吉外卖 新增员工功能
将录入的员工数据插入到employee表里面。原创 2022-11-17 13:04:05 · 115 阅读 · 0 评论 -
瑞吉外卖 登录功能,退出功能实现
employee表有一个字段是status,这个字段表示这个用户是不是被封号了,被封号了也要返回一个结果给浏览器。点击右上角的退出按钮,发送请求,请求地址是/employee/logout 请求方式位POST。先查询数据空中是否有这个用户名,没有的话直接返回登录失败。有这个用户名,再检查密码对不对,密码不对直接返回登录失败。就可以退出登录,跳转到登陆页面。原创 2022-11-16 16:53:40 · 711 阅读 · 0 评论 -
MD5 加密
还有就是:很多网站在数据库存储用户的密码的时候都是存储用户密码的MD5值。这样就算不法分子得到数据库的用户密码的MD5值,也无法知道用户的密码。输入任意长度的信息,返回的是128位的序列(不同的输入得到不同的结果)然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。比如发送一个电子文档,发送前,我先得到MD5的输出结果a。MD5就是Message-Digest 信息摘要算法。MD5算法不可逆,也就是不能从密文反过来得到原文。如果a与b一样就代表中途未被篡改。原创 2022-11-16 11:34:21 · 183 阅读 · 0 评论 -
springboot实现静态资源映射
表示你在浏览器中输入/backend/**会去resources文件夹下去寻找backen文件夹的****浏览器输入localhost:8080/backend/index.html可以找到。原创 2022-11-16 11:04:44 · 215 阅读 · 0 评论 -
springboot定时执行任务
【代码】springboot定时执行任务。原创 2022-10-28 15:19:22 · 525 阅读 · 0 评论 -
如何实现点击按钮,跳转到另一个页面
点击按钮,相当于调用了controller里面的delete_emp方法,即跳转到:localhost:8080/delete_emp/3。点击一个按钮,跳转页面(相当于调用了另外一个方法)原创 2022-10-27 19:17:52 · 2627 阅读 · 0 评论 -
WebMvcConfigurer
我们常常会创建一个config包 ,在这个包里面新建一个MyMvcConfig类,这个类实现WebMvcConfigurer接口,并且重写这个接口里面的方法。常用来实现效果:用户想访问一个页面,先检查用户是否已经登录,如果没有登陆,就会提示你还没有登录,需要先登录,并返回登陆页面。原创 2022-10-27 17:11:37 · 1014 阅读 · 0 评论 -
resources文件夹里存放的是什么
static文件夹里面存放资源文件:css文件,js文件,images文件。template文件夹里面存放html页面。原创 2022-10-27 11:03:19 · 698 阅读 · 0 评论 -
springboot无法启动之service层无法找到dao层对象
显然这里引入的是mybatis和mybatis-spring的依赖,将这两个依赖删除,替换成mybatis-springboot-starter依赖。找了网上有人说的一种方法:在启动类中增加MapperScan注解,扫描dao包。也就是说service层要dao层的一个mapper对象,但是找不到。然后在maven里面,先clean,然后install,最后刷新。原创 2022-10-25 11:58:39 · 1434 阅读 · 0 评论 -
牛客网项目里的数据表
4.message表 消息表,看有没有别人私信发消息给你,还有你私信别人的消息。第五个字段是type,帖子类型,0表示普通帖子,1表示置顶帖子。第二个字段是user_id,这个帖子是由哪个用户发布的。第九个字段是帖子的得分(用来给帖子进行排名)2.discuss_post表 帖子表。第四个字段是 content,帖子的内容。第一个字段是id 是自增长的。第三个字段是title,帖子的标题。第六个字段是status,帖子状态。第七个字段是帖子创建的时间。第八个字段是帖子的评论数量。原创 2022-10-22 17:12:41 · 977 阅读 · 0 评论 -
springboot中常见的注解
(2)指定要扫描的包,这个包下的注解就会生效。Componet和它的三个衍生注解,功能都是一样的,都是将某个类注册到spring容器内。(3)controller层(Servlet层):习惯用Controller。Component 有几个衍生注解(和mvc三层架构相对应)(2)service层的,习惯用service。(1)dao层的习惯用:Repository。使用注解开发,必须要(1)导入aop的包。2.Value注解 设置默认值。原创 2022-09-02 10:58:06 · 370 阅读 · 0 评论 -
第0篇文章:springboot完整开发一个接口(Conrtroller-Service-Mapper-Entity/Dao体系)
step4:创建Controller包,在Controller包里面创建AnimalController类,在这个类本身的find1方法中调用AnimalService类的find2方法。step3:创建Service包,在Service包里面创建AnimalService类,在这个类本身的find2方法中调用AnimalMapper类的find3方法。step2:创建Mapper包,在Mapper包里面创建AnimalMapper接口。开发从底层往上层开发,调用,从上层往下层调用。原创 2022-10-18 20:50:36 · 510 阅读 · 2 评论 -
springboot实现文件上传
step1:在resources文件夹下面的static文件夹中创建html页面:index.html页面。step2:在Controller中设置好浏览器上传的图片保存到本地哪个位置。step3:创建一个Config包,里面写一个Config类。原创 2022-10-12 23:49:19 · 404 阅读 · 0 评论 -
第十二篇:一个后端程序员怎么使用前端页面
比如这里展示数据库中前十条数据,就是用数据库中前十条数据代替这个html页面中的十个占位符。然后你可以把后端查询的数据填入这些占位符中,就可以得到最终展示给用户的页面了。你先写好一个前端页面(也就是一个html文件),但是这个前端页面是有一些位置是用占位符代替的。原创 2022-10-05 18:04:28 · 1066 阅读 · 0 评论 -
第十一篇:什么是html模板引擎(比如说thymeleaf)
step1.在template文件夹下面新建一个文件:叫做view.html,这个文件就是我们创建的html模板。,调用这个方法,将模板html中的name,age换成我们希望换成的name和age(张三和30)返回Model相关的数据和视图相关的数据,将这些数据提交给模板引擎进行渲染,生成一个html页面。这里${name}和${age}就是两个占位符,也就是说这是一个页面模板,,就能实现利用模板制作html页面了。step2:url中输入。1.响应一个html页面。原创 2022-10-04 23:52:30 · 877 阅读 · 0 评论 -
第十篇:将springboot项目打包成一个jar包
step1:如果你发现你的项目在IDEA中没有target文件夹,先去把这个显示派出的文件勾选上,就会出现target文件夹了。在命令行窗口进入target文件夹下:然后使用java -jar命令运行这个jar包。step2:点开项目的maven 然后先点击clean,然后点击package。此时,会在target文件夹下生成一个jar包。原创 2022-09-24 17:07:35 · 687 阅读 · 0 评论 -
第九篇:springboot的整体流程
Controller层负责指定某个访问路径对应调用Service层哪个方法,而这个Service层的方法又调用了Dao层的方法(Dao层的方法是真正的在执行sql语句)在上一层new一个下一层的对象,然后调用这个下层对象的方法。Controller层。原创 2022-09-24 15:47:44 · 120 阅读 · 0 评论 -
第八篇文章:lombok
这个Date注解非常狠,直接包括了get/set方法,toString方法,hashcode方法,equsls方法。正常写一个类是,每一个私有属性都要生成get,set方法。原创 2022-09-23 16:42:31 · 42 阅读 · 0 评论 -
第七篇:springboot整合mybatis
step2:在application.yml文件中配置相关信息。step3:写实体类(将数据表映射成一个类)step1:在pom.xml文件中导相关依赖。step4:dao层。原创 2022-09-23 12:37:07 · 49 阅读 · 0 评论 -
第六篇文章:springboot整合junit
step1:在test文件夹里面的测试类中注入你要测试的对象(通过@Autowired注解)step2:在这个测试类的contextLoads方法中,执行你要测试的这个对象的方法。原创 2022-09-23 10:34:40 · 69 阅读 · 0 评论