文章目录

  • Java中@Override的作用
  • @ResponseBody与@RestController的作用与区别
  • @Autowired与@Resource异同:
  • requestmethod.get和post的区别
  • @RequestParam注解使用
    • 1、作用:
    • 2、语法:
    • 3、测试环境:
  • JSON 基本使用
  • 自定义注解
  • 持续更新中。。。

Java中@Override的作用

@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。

举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。

@Override
public void onCreate(Bundle savedInstanceState){…….}

这种写法是正确的,如果你写成:

@Override
public void oncreate(Bundle savedInstanceState)
{…….}

编译器会报如下错误:The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,以确保你正确重写onCreate方法(因为oncreate应该为onCreate)。而如果你不加@Override,则编译器将不会检测出错误,而是会认为你为子类定义了一个新方法:oncreate

@ResponseBody与@RestController的作用与区别

在使用springmvc框架的时候,在处理json的时候需要用到spring框架特有的注解@ResponseBody或者@RestController注解,这两个注解都会处理返回的数据格式,使用了该类型注解后返回的不再是视图,不会进行转跳,而是返回json或xml数据格式,输出在页面上。
那么,这两个注解在使用上有什么区别呢?

  • @ResponseBody,一般是使用在单独的方法上的,需要哪个方法返回json数据格式,就在哪个方法上使用,具有针对性。
  • @RestController,一般是使用在类上的,它表示的意思其实就是结合了@Controller和@ResponseBody两个注解,

如果哪个类下的所有方法需要返回json数据格式的,就在哪个类上使用该注解,具有统一性;需要注意的是,使用了@RestController注解之后,其本质相当于在该类的所有方法上都统一使用了@ResponseBody注解,所以该类下的所有方法都会返回json数据格式,输出在页面上,而不会再返回视图。

@Autowired与@Resource异同:

  1. @Autowired与@Resource都可以用来装配bean。都可以写在字段上,或写在setter方法上。
  2. @Autowired默认按类型装配(属于spring规范),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用
  3. @Resource(属于J2EE复返),默认按照名称进行装配,名称可以通过name属性进行指定。如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。它们的作用相同都是用注解方式注入对象,但执行顺序不同。@Autowired先byType,@Resource先byName。

requestmethod.get和post的区别

  1. 方法的@RequestMapping的value就是原先对返回值的限定。method则是对请求method属性的限定。
  2. 利用@RequestMapping标识控制来进行请求url向物理视图的映射。但是 ,这种对请求的映射不仅仅不局限在标示的方法的返回值对请求url上,还可以对请求的其属性做出约定,如请求的method,是get还是post。如果做出了method的条件限定,当请求的url即使映射上了,method不符合的话也不能生成物理视图并转发到目标页面。
  3. 一般查询服务的时候用get,向后台提交数据时用post,如注册等等。这个说白了就是http里面get和post的差别了,post安全点,提交的数据多点,数据是放在http头信息里面的,get的参数是在URL后面的。

@RequestParam注解使用

1、作用:

@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

2、语法:

语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

3、测试环境:

环境:jdk1.8 Tomcat8.5 idea2018 manven父工程子模块
步骤:
1、创建web工程、引入依赖
2、配置SpringMvc入口文件 --DispatcherServlet–为总调度、web.xml里配置
3、创建Springmvc.xml文件–理解为:适配器(这里不需要自已指定适配、springmvc会自动指定)–视图解析器
4、创建 业务处理器 Controller类
5、测试

JSON 基本使用

大佬博客

自定义注解

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;/*** 注解*/
@Target(FIELD)
@Retention(RUNTIME)
@Documented
public @interface FruitName {String value() default "";
}//java.lang.annotation 提供了四种元注解,专门注解其他的注解(在自定义注解的时候,需要使用到元注解)://  @Documented – 注解是否将包含在JavaDoc中//  @Retention – 什么时候使用该注解//  @Target – 注解用于什么地方//  @Inherited – 是否允许子类继承该注解

持续更新中。。。

SpringBoot项目新手——问题疑惑及解决笔记相关推荐

  1. 【SpringBoot】人工更新SpringBoot项目,Jar包太大问题解决,SpringBoot瘦包

    楼主也是刚接触SpringBoot几天,以前都是用SpringMVC开发,这里跟小伙伴们分享一个需求问题,如果有遇到的话可以继续往下看,能帮助到各位,是最好不过啦. 我们知道用SpringBoot开发 ...

  2. docker部署mysql项目_docker部署springboot项目(web + mysql)

    前言 docker目前是非常热门的项目,本文暂不讨论docker集群环境中的部署项目问题. 环境准备 1. docker环境(本文使用centos7下的docker环境) 2. javaWeb项目(s ...

  3. 【解决方法汇总】SpringBoot项目报错 Could not resolve placeholder ‘‘ in value “${}“

    SpringBoot项目启动报错 Could not resolve placeholder 'show.tips.text' in value "${show.tips.text}&quo ...

  4. SpringBoot项目打jar后执行jar包提示:xx没有主属性清单 解决

    SpringBoot项目打jar包后执行jar包提示:xx没有主属性清单 解决 今天在练习SpringBoot项目打jar包部署的时间遇见了一个问题:jar中没有主属性清单,对此也是比较疑惑,在百度之 ...

  5. docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...

    以前使用FTP在Linux中使用java -jar xxx.jar部署SpringBoot项目时,由于在项目中指定了主机文件存放路径映射,可以直接访问服务器的文件. 但是最近入坑Docker,将Spr ...

  6. 解决(springboot项目)mysql表名大写,造成jpa Table doesn‘t exist问题

    解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题 参考文章: (1)解决(springboot项目)mysql表名大写,造成jpa Table ...

  7. jpa遇到mysql表名大写怎么办_解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题...

    一般实体类中的属性, 如contentType会被hibernate默认映射为content_type,如果数据库中的字段是contenttype则会不匹配 这个问题有2种解决方法: 我的报错是: j ...

  8. jsp连接mysql显示404,SpringBoot+jsp项目启动出现404的解决方法

    通过maven创建springboot项目启动出现404 application.properties配置 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mv ...

  9. 解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题

    这个问题有2种解决方法: 我的报错是: java.sql.SQLSyntaxErrorException: Table 'gaei_ms.gaei_work_task' doesn't exist 方 ...

最新文章

  1. java operators_Java Basic Operators
  2. 下一代超大规模软件定义网络技术实践
  3. Spring Security 实战:使用 JWT 认证访问接口
  4. Python强大的格式化format
  5. Codeforces Round #183 (Div. 2)
  6. 超级寒潮考验智慧城市万亿投资
  7. android 二次绘制 layout,View的三次measure,两次layout和一次draw
  8. 超赞 | 计算机视觉联盟全新Logo!近期精华回顾!
  9. 计算机五大逻辑部件数据流,211计算机基础知识综合篇.ppt
  10. JavaWeb编年史(青铜时代)
  11. c语言中判断c是否为小写字母,C语言判断英文字符大小写的方法
  12. (附源码)SSM医院人事及科室病区管理JAVA计算机毕业设计项目
  13. 写一段python爬取付费音乐的代码
  14. Android 系统自动获取来电/短信/提示铃声
  15. 蓝桥杯STM32G431——RTC实时时钟
  16. Ubuntu+QT+SSL+MQTT
  17. AppiumLibrary 时间控件的选择
  18. 人工智能热潮_团结与增强现实热潮
  19. linux 如何安装maven
  20. 【分享】一年级古诗古朗月行语文知识点心田花开汇总

热门文章

  1. Android之BaseRecyclerViewAdpater(3.0.4版本)当页面第二次滑到底部的时候没有触发OnLoadMoreListener监听的onLoadMore函数
  2. Android之jni出现JNIEnv has no member named ‘GetMehtodID‘解决办法
  3. linux 配置path
  4. Linux之VI命令详解
  5. 基于c语言单片机秒表课程设计,基于c语言单片机秒表课程设计要点.doc
  6. linux 编译工具链,Linux工具链for TKStudio下载_Linux工具链for TKStudio官方下载-太平洋下载中心...
  7. java获取tomcat目录结构_tomcat目录结构简介_动力节点Java学院整理
  8. 你和985硕博研究生,差了这些东西
  9. 怎样快速掌握深度学习TensorFlow框架?
  10. PL/SQL Developer使用技巧总结