回顾maven项目的spring boot相关知识点
2021新年快乐!
在参加完研究生考试后,感觉像是放下了一个大负担,但并不能就此以为什么都结束了。反而,当我今天去看了一下之前老师带领我们班级做的一个maven项目,感觉像是第一次看到这个,十分陌生。这对于敲代码的人来讲是十分危险的信号,所以要趁早亡羊补牢,把遗忘的东西补一补。就此,我决定回顾这个让我感到陌生的maven项目用到的有关的spring boot的知识点。
1.@RestController。
通过对网上这篇博客的的学习(https://www.cnblogs.com/yaqee/p/11256047.html),我大致了解到了在Spring中@RestController的作用等同于@Controller + @ResponseBody。而@Controller注解的作用是通过在一个类上添加@Controller注解,表明了这个类是一个控制器类,并且还需要在该类中添加注解@RequestMapping;而@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。所以@RestController注解的作用大致就是将被注解的类设置为一个控制类,是用于spring boot项目中创建controller类所需要的,且一般要与@RequestMapping(后面会讲到)联用,且支持快捷的返回一个JSON对象。然后@RestController的使用方法和代码如下:
1 @RestController
2 @RequestMapping("/checkgroup") //映射到带有参数“checkgroup”的页面
3 public class CheckGroupController { //表明这个类是一个控制类
4 XXXXX5 }
2.@RequestMapping
通过对网上这篇博客的学习(https://blog.csdn.net/qq_41425382/article/details/100123183)我学习到@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径,简单来说,就是在页面上标有此映射的功能和参数都会直接传到被映射的函数里面执行。且它的属性和对应的作用如以下所示:
- value:用于指定请求的 URL。它和 path 属性的作用是一样的。
- method:用于指定请求的方式。
- params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和 配置的一模一样。
且如果是用于方法上,则是请求 URL 的第二级访问目录,在使用的时候需要以/开头。 它出现的目的是为了使我们的 URL 可以按照模块化管理。
举个例子(用他人的),将@RequestMapping注解分别注释在类和方法上,所以在前端写链接的时候要写完全的路径(类上标签的路径+方法标签上的路劲)
控制器的代码块:
1 @RequestMapping("/account")
2 public class AccountController {
3 @RequestMapping("/findAccount")
4 public String findAccount() {
5 System.out.println("查询了账户。。。。");
6 return "success";
7 }
8 }
JSP中的代码块
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>requestmapping 的使用</title>
5 </head>
6 <body>
7 <!-- 第一种访问方式 -->
8 <a href="${pageContext.request.contextPath}/account/findAccount">
9 查询账户
10 </a>
11 <br/>
12 <!-- 第二种访问方式 -->
13 <a href="account/findAccount">查询账户</a>
14 </body>
15 </html>
3.@Reference
@Reference是dubbo的注解,也是注入,他一般注入的是分布式的远程服务的对象,需要dubbo配置使用。除此之外的注入注解还有@Autowired(SpringBoot项目中常用。简单来说就是引入由Spring容器管理的bean)和@resource(作用相当于@Autowired,只不过@Autowired是byType自动注入,而@Resource默认byName自动注入),而spring中的依赖注入是spring的的两大核心之一,也叫控制反转,他的作用是将创建对象的管理交给spring容器,以前写项目会用new people的方式来创建一个people类,现在用了spring后,可以在xml中配置,也可以用注解的方式,在class文件开始部分写下面的代码,然后在这个class文件中使用到people就可以直接用people,而不需要用new来创建了,这样也大大降低了耦合性。
然后这篇博客仔细讲解了有依赖注入和无依赖注入的差别,具体就不再细述:https://blog.csdn.net/chongbin007/article/details/103064932
然后列举一些如何使用@Reference
1 @Reference
2 private CheckGroupService checkGroupService;
4.@PreAuthorize
@PreAuthorize是Spring Security权限访问的一个注解,需要在设置好Spring Security的相关配置后,此注解才起作用。具体使用方法我暂时还没有搞懂,故先暂时搁置。
5.@Component
这个注解是我第一次看见,且网上的知识很多是相似的,故转载一篇博客以供参考:https://www.cnblogs.com/w-essay/p/11493023.html
1、@controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
2、@service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
3、@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/>)
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
说明:
下面写这个是引入component的扫描组件 (这是在配置文件中的书写格式,如spring mvc中的applicationcontent.xml,在spring boot中的话,因采用的是零配置所以要直接在类上加入@component注解就可以了)
<context:component-scan base-package=”com.mmnc”>
上面的这个例子是引入Component组件的例子,其中base-package表示为需要扫描的所有子包。
共同点:被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理
6.@Service
@Service如上所示是用于标注服务层,主要用来进行业务的逻辑处理,这里介绍一个用法,就是当你在写某个函数的serviceImpl类时,可以在顶部添加代码
1.@Service(interfaceClass = XXXService.class)
来映射对应的XXXservice,具体原理我还不知道,只是简单列出来。
7.@Transactional
- @Transactional是声明式事务管理 编程中使用的注解,添加位置应该是接口实现类或接口实现方法上,而不是接口类中。
- 访问权限:public 的方法才起作用。@Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的。
- 系统设计:将标签放置在需要进行事务管理的方法上,而不是放在所有接口实现类上:只读的接口就不需要事务管理,由于配置了@Transactional就需要AOP拦截及事务的处理,可能影响系统性能。
回顾maven项目的spring boot相关知识点的更多相关文章
- 使用Maven插件构建Spring Boot应用程序镜像
使用Maven插件构建Spring Boot应用程序的Docker镜像. 环境准备 1.Linux系统 2.安装JDK,Maven 3.安装Docker 应用实践 1.在应用程序根目录下添加Docke ...
- eclipse 修改maven项目的jdk版本
eclipse 修改maven项目的jdk版本 CreationTime--2018年6月8日10点29分 Author:Marydon 1.情景展示 jdk版本太低,如何修改 2.错误方式 第一 ...
- IDEA Maven项目的Mybatis逆向工程
IDEA Maven项目的Mybatis逆向工程 1.配置.pom 如果是在多模块开发下,该文件逆向工程要生成的那个模块下的pom文件. <build> <plugins> & ...
- eclipse 导入包含子maven项目的maven项目时的正确方式(父子项目)
eclipse 导入包含子maven项目的maven项目时的正确方式(父子项目) NO1 导入时依次选择 import > Maven > Existing Maven Projects ...
- 【面试 spring boot】【第十七篇】spring boot相关面试
spring boot相关面试 ====================================================== 1.spring boot启动类 启动原理 参考:htt ...
- Spring Boot相关组件的添加
在勾选相关组件后, pom.xml文件上发生了根本的变化 1.这是最简单的项目的pom文件 <?xml version="1.0" encoding="UTF-8& ...
- idea创建maven多模块Spring Boot项目
1, 创建父项目 1.1,file - new - project 1.2,选择maven,Create from archetype(有的说不选,有的没说,不过我建父项目的时候没有勾选) 1.3,根 ...
- 第三章 Maven构建 Java Spring Boot Web项目
3.1 认识Srping Boot Spring Boot是一个框架,是一种全新的编程规范,它的产生简化了对框架的使用,简化了Spring众多的框架中大量的繁琐的配置文件,所以说Spring Bo ...
- Maven工程搭建spring boot+spring mvc+JPA
添加Spring boot支持,引入相关包: 1.maven工程,少不了pom.xml,spring boot的引入可参考官网: <parent> <groupId>org.s ...
随机推荐
- Fiddler 4 断点调试(修改response请求参数)
1.选择测试链接 2. 2然后点击规则的Automatic Breakpoints 的 After Responses 3.然后重新发起请求并找到链接 4.然后修改数据 5.最终效果
- 对称加密之---AES加密
工作中常会需要让数据传输前进行加密处理.这次用到的是AES加密.AES加密中,需要注意到坑还是挺多的.对AES也进行了一番了解,发现里面的东西真的是注意的太多了.今天只是整理了一种简单的加密格式,工作 ...
- 单调栈高封装模板hia hia hia
这个单调栈应该可以了,舒服舒服 #include <bits/stdc++.h> using namespace std; #define limit (400000 + 5)//防止溢出 ...
- 第11.16节 Python正则元字符“()”(小括号)与组(group)匹配模式
一. 什么是组 关于组匹配模式,Python官网上说得比较简单,也没有这个名词,只有组这个名词,老猿查了比较多的资料和做了相关测试之后才理解. 组匹配模式,就是在匹配的正则表达式中使用小括号" ...
- flask实现分类搜索的小测试
最新学长要求实现一个搜索的功能呢,也费了一点功夫.这个案例也没有学长写的好,比学长的实现差了不少,待我仔细研究习再发出相应代码 项目要求,搜索语法如下: titile: xxx #搜索titile的所 ...
- C#清除HTML标签方法
删除字符串中HTML标签代码 public static string ClearHTMLTags1(string HTML) { string[] Regexs ={ @"<scri ...
- 团队作业part5--测试与发布(Alpha版本)
测试报告 1.测试与解决bug 1)测试人员测试出的bug 游戏失败后方块还能下落 分数设计不太合理 存在行数不可消除的情况 2)开发人员解决bug 2.场景测试 适用群体:打发时间的学生.工作压力大 ...
- Scrum 冲刺第六天
一.每日站立式会议 1.会议内容 1)进行每日工作汇报 张博愉: 昨天已完成的工作:学习如何编写用户手册 今日工作计划:编写测试计划 工作中遇到的困难:文档不知如何动手 张润柏: 昨天已完成的工作:完 ...
- js原生方法map实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 将一个数组转化为需要的格式,来自react官网的商品列表示例
//原来的格式 const PRODUCTS = [ { category: 'Sporting Goods', price: '$49.99', stocked: true, name: 'Foot ...