当前位置: 首页 > news >正文

创意型网站c 做网站

创意型网站,c 做网站,金戈西地那非片,郑州seo代理外包公司文章目录 第一章、Java注解与元数据1.1#xff09;元数据与注解概念介绍1.2#xff09;Java注解的作用和使用1.3#xff09;注解的分类 第二章、Mybatis框架常用注解2.1#xff09;Mybatis注解概览2.2#xff09;常用注解MapperScanMapperSelectInsertUpdateDeleteParam结… 文章目录 第一章、Java注解与元数据1.1元数据与注解概念介绍1.2Java注解的作用和使用1.3注解的分类 第二章、Mybatis框架常用注解2.1Mybatis注解概览2.2常用注解MapperScanMapperSelectInsertUpdateDeleteParam结果集注解Results、Result、resultMap 第三章、Spring框架常用注解3.1Spring Bean相关注解ConfigurationComponentControllerServiceRepositoryComponentScanAutowired,Inject,Resource,Qualifier,PrimaryScopeBeanValue 3.2功能性注解EnableSchedulingScheduledEnableAspetJautoProxyLazyImportProfileConditionalRequired CrossOrigin 3.3AOP相关注解Aspect 声明一个切面 第四章、SpringMvc常用注解EnableWebMvc 4.1常见的处理 HTTP 请求RequestMappingGetMapping,PostMapping,DeleteMappingPutMapping,PatchMapping 4.2前后端传值PathVariableRequestBodyRequestHeaderRequestParamRequestPartResponseBodyResponseStatusExceptionHandlerModelAttributeSessionAttributesTransactional ScheduledAsync 第五章、SpringBoot常用注解SpringBootApplicationEnableAutoConfigurationRestControllerRestControllerAdviceConfigurationProperties 第六章、json常用注解JsonIgnorePropertiesJsonIgnoreJsonFormatJsonSerializeJsonDeserializeJsonIgnoreTypeJsonProperty 致谢 友情提醒: 先看文章目录大致了解文章知识点结构点击文章目录可直接跳转到文章指定位置。用到的资料都放在文章最末尾了不过估计也没人看完这篇文章太长了 第一章、Java注解与元数据 1.1元数据与注解概念介绍 ①元数据概念描述数据或信息资源等对象的数据其使用目的在于识别资源评价资源追踪使用过程中的变化实现对使用资源的简单高效管理。 ②Java中的元数据描述代码间关系或者代码与其他资源例如数据库表之间联系的数据。 ③Java注解又称java标注是在 JDK5 时引入的新特性用于为Java代码提供元数据的标记将元数据与程序元素类、方法、成员变量等进行关联。它提供了一种将元数据和程序代码组合在一起的方式有助于将程序元数据与源代码分离开来从而简化程序设计。 1.2Java注解的作用和使用 注解的作用 ①提供更多的程序元数据。可以为程序提供更多的信息例如Java类的版本号、作者、方法的参数名称和类型等。 ②简化程序设计实现替代配置文件功能。注解在javaEE中占据了更重要的角色尤其是在使用框架时例如用来配置应用程序的任何切面代替javaEE旧版中所残留的冗余代码和XML配置等等。Java注解可以使程序的设计更加简单它实现了将元数据和程序代码分离开来。 ③提供更好的可读性。更加清晰地表达程序的意图和目的 ④实现自动化的代码生成。Java注解可以为程序自动生成一些代码从而减少程序员的工作量提高程序的开发效率。 ⑤提供更加灵活的程序实现。Java注解可以应用到Java类、方法、属性、参数等元素上从而为程序的设计和实现提供了更加灵活和可扩展的方式。 注解的简单使用 使用注解时要在它前面增加“”符号Java注解的语法格式为annotationName其中annotationName是注解的名称。把注解当作修饰符修饰它支持的程序元素它们可以用于类、方法、变量、参数和包等。 下面是使用注解的示例表少MyClass类已经过时不再使用 Deprecated public class MyClass {// ... }1.3注解的分类 ①JDK提供自带的内置注解举例 Override 该注解用在方法前面用来标识该方法是重写父类的某个方法。 Deprecated 表示该⽅法已经过时不建议使⽤但可以使⽤FunctionalInterfac 函数式接⼝ / 接⼝中只有⼀个抽象⽅法SuppressWarnings 表示抑制警告阻止编译器发出某些警告信息。只是看不到警告不代表没有警告 它可以有以下参数:deprecation 过时的类或方法警告。unchecked执行了未检查的转换时警告。fallthrough当Switch程序块直接通往下一种情况而没有Break时的警告。path在类路径、源文件路径等中有不存在的路径时的警告。serial当在可序列化的类上缺少serialVersionUID定义时的警告。finally任何finally子句不能完成时的警告。all关于以上所有情况的警告。 ②元注解举例 元注解是java API提供的是用于修饰注解的注解通常用在注解的定义上。 如下举例 Retention它是被定义在一个注解类的前面用来说明该注解的生命周期。它有以下参数RetentionPolicy.SOURCE指定注解只保留在源文件当中。RetentionPolicy.CLASS指定注解只保留在class文件中。(缺省)RetentionPolicy.RUNTIME指定注解可以保留在程序运行期间。Target它是被定义在一个注解类的前面用来说明注解在哪⽤(默认可以放在任何元素之前)它有以下参数ElementType.TYPE声明在一个类、接口、枚举前。ElementType.FIELD声明在一个类的字段前。ElementType.METHOD在一个类的方法前。ElementType.PARAMETER声明在一个方法参数前。ElementType.CONSTRUCTOR声明在一个类的构造方法前。ElementType.LOCAL_VARIABLE声明在一个局部变量前。ElementType.ANNOTATION_TYPE声明在一个注解类型前。ElementType.PACKAGE声明在一个包名前。Inherited 表明该注解将会被子类继承。只有用在类元素类成员属性上才有效果。 方法并不受此注释的影响。对于类来说子类要继承父类的注解需要该注解被 Inherited 标识。 对于成员属性和方法来说非重写的都会保持和父类一样的注解而被实现的抽象方法被重写的方法都不会有父类的注解。 Documented了解 表明在生成JavaDoc文档时该注解也会出现在javaDoc文档中。 如果一个注解GetMapping被Documented标注那么被GetMapping修饰的类生成文档时会显示GetMapping。如果GetMapping没有被Documented标注最终生成的文档中就不会显示GetMapping。这里的生成文档指的JavaDoc文档③自定义注解 1、java的注解本质上是一个接口而且是自动隐性的继承了java.lang.annotation.Annotation接口的接口。定义注解只能依靠interface实现而不能再通过主动继承Annotation接口去定义。并且不能再去继承别的类或是接口。 2、注解类型可以包含多个成员变量和方法成员变量和方法的返回值类型可以是基本数据类型、字符串、枚举或其他注解类型。 3、参数成员只能用public 或默认(default) 这两个访问权修饰。 4、要获取类方法和字段的注解信息必须通过Java的反射技术来获取 Annotation 对象 5、自定义注解需要使用到元注解。 /*** 自定义注解*/ Retention(RetentionPolicy.RUNTIME)//设置有效期 Target({ElementType.TYPE,ElementType.METHOD})//设置作用目标 public interface VIP {String value() default 默认值;int age() default 20;long id();String[] HOBBY(); } 第二章、Mybatis框架常用注解 2.1Mybatis注解概览 Mybatis中的注解基本上都在org.apache.ibatis.annotations目录下 Mybatis常用注解对应的目标和标签 2.2常用注解 MapperScan 为了集成Spring而写的注解。该注解主要是扫描某个包目录下的Mapper将Mapper接口类交给Spring进行管理。 SpringBootApplication MapperScan(com.example.mybatis.mapper) public class Application {}Mapper 一个描述数据层接口dao的注解用于告诉spring框架此接口的实现类由Mybatis负责创建并将其实现类对象存储到spring容器中。目的就是为了不再写mapper映射文件 UserMapper.xml。简化编写xml的繁琐。 Mapper public interface UserMapper { User selectById(Integer id); }Select Select注解的目的是为了取代xml中的select标签只作用于方法上面 Select 注解会将注解中的 SQL 查询语句交给 Mybatis 框架进行解析和执行。Mybatis 会通过 #{} 占位符获取查询语句中的参数并将这些参数传递给底层的 JDBC 驱动程序最终执行 SQL 查询并返回查询结果。花括号里面的内容可以是字符串也可以是字符串数组 Select({select id,username,phone from db_user where id #{key}}) User selectUserByPrimaryKey(Long key);复杂的判断需要使用标签 Select(script select * from table where id #{id} when testaddress !null and address #{address} /when /script) Person selectPersonById(Integer id); Insert 和Select查询标签同理,如果需要设置主键可以使用Option注解 //添加Options(useGeneratedKeys true, keyProperty aid)Insert(insert into author (aid,aage,atel,aaddress)values(#{aid},#{aage},#{atel},#{aaddress}))int insert(Author author); Update 和Select查询标签同理 Update({update db_user set name #{name} where id #{id}}) int updateUserByPrimaryKey(User user);Delete 和Select查询标签同理 Delete({delete from db_user where id #{key}}) int deleteUserByPrimaryKey(Long key);Param 首先明确这个注解是为SQL语句中参数赋值而服务的。 ①方法有多个参数需要 Param 注解 ②方法参数要取别名需要 Param 注解 ③XML 中的 SQL 使用了 $ 会导致SQL注入那么参数中也需要 Param 注解 其中insert into user (username,address) values (#{username},#{address});中的userName和address都是从注解Param()里面取的取出来的值就是方法中参数 String name 和 String addr的值。 Mapper public interface UserMapper {Integer insert(Param(username) String name, Param(address) String addr); }对应的 XML 文件 insert idinsert parameterTypeorg.example.bean.Userinsert into user (username,address) values (#{username},#{address}); /insert④在动态 SQL 中使用了参数作为变量也需要 Param 注解在动态 SQL 中用到了参数作为判断条件也要加 Param 注解 Mapper public interface UserMapper {ListUser getUserById(Param(id)Integer id); }对应的xml文件 select idgetUserById resultTypeorg.example.bean.Userselect * from userif testid!nullwhere id#{id}/if /select结果集注解Results、Result、resultMap 对于表的字段名和对象的属性名不同时需要完成字段名和属性之间的映射关系。 有两种方式1、为列起别名别名和属性名一致 select idfindOne resultTypecom.example.Studentselect stu_id id,stu_name name,stu_age age from tb_stu where stu_id#{id}/select2、使用resultMap完成列和属性之间的映射关系。 resultMap idStuMapper typecom.example.Student!--column:列名 property:属性名--id columnstu_id propertyid/!--普通列的映射关系--result columnstu_name propertyname/result columnstu_age propertyage//resultMap!--resultType和ResultMap选一个使用这里的resultMapStuMapper引用了上面定义好的--select idfindOne resultMapStuMapperselect * from tb_stu where stu_id#{id}/select注解方式完成列和属性之间映射 Results()注解和Result()共同配合使用Results 注解有id和value两个属性其中id属性对应的是XML配置中resultMap标签的id属性,其它地方可以使用这个id来引用它而value属性对应的是XML配置中resultMap标签下的id和result标签id标签用idtrue属性来确定。 Results( id exampleMap ,value {Result(id true ,property id,column uid),Result(property username,column uusername),Result(property password,column upassword)})Select(select * from user)ArrayListT_User selectAll(); 使用ResultMap注解来引用一个已经存在的ResultMap //引用结果集Select(select * from user)ResultMap(exampleMap)ArrayListT_User selectAll1();第三章、Spring框架常用注解 开启注解 ​context:component-scan base-packagecom.guo/context:component-scan context:annotation-config/3.1Spring Bean相关注解 Configuration 声明当前类为配置类此注解用在class上来定义bean。其作用和xml配置文件相同表示此bean是一个Spring配置。此外此类可以使用Bean注解来初始化定义bean。它的某个方法头上如果注册了Bean就会作为这个Spring容器中的Bean。一般用来声明配置类可以使用 Component注解替代不过使用Configuration注解声明配置类更加语义化。 使用Configuration注解你可以在Java类中进行配置而不必依赖于XML配置文件。这使得配置更加灵活和类型安全。 支持组件扫描Configuration注解通常与ComponentScan注解一起使用以启用组件扫描并自动发现被Configuration标记的类。 ………………在spring启动时会执行Configuration 类中 Bean方法 如果您的项目中已经使用了 Component、Service、Repository 等注解并且这些注解的类位于Spring扫描范围内那么通常情况下不需要额外的 ComponentScan 注解。 定义Bean在配置类中你可以使用Bean注解来声明一个Bean定义。这表示Spring容器将会实例化这些Bean并根据配置进行依赖注入和管理。 Configuartion public class SpringCoreConfig { Bean public AdminUser adminUser() { AdminUser adminUser new AdminUser(); return adminUser; }}ComponentControllerServiceRepository Component注解用于标注一个普通的组件类通知Spring被此注解的类需被纳入到Spring Bean容器中并进行管理。 接下来三个与Component注解一样被此注解标注的类会自动被Spring所管理 Controller用于标注Spring MVC的控制器。 Service用于标注业务逻辑类。 Repository用于标注DAO层的数据持久化类。 ComponentScan ComponentScan注解用于配置Spring需要扫描的被组件注解注释的类所在的包。可以通过配置其basePackages属性或者value属性来配置需要扫描的包路径。value属性是basePackages的别名。 ComponentScan 此注解一般和Configuration注解一起使用指定Spring扫描注解的package。如果没有指定包那么默认会扫描此配置类所在的package。 Autowired,Inject,Resource,Qualifier,Primary Autowired作用在变量、setter方法、构造函数上显式地标记Spring将要解析和注入的依赖项 有个属性为required可以配置为false Autowired如果需要按照名称匹配需要和Qualifier一起使用 Inject由JSR-330提供 Inject用法和Autowired一样。默认按照类型匹配的Inject和Name一起使用。 Resource Resource默认按 byName自动注入。Autowired按byType自动注入Resource有两个属性是比较重要的分是name和typeSpring将Resource注解的name属性解析为bean的名字而type属性则解析为bean的类型。所以如果使用name属性则使用byName的自动注入策略而使用type属性时则使用byType自动注入策略。 Qualifier 按名称自动装配此注解是和Autowired一起使用的。使用此注解可以让你对注入的过程有更多的控制。 Qualifier可以被用在单个构造器或者方法的参数上。当上下文有几个相同类型的bean, 使用Autowired则无法区分要绑定的bean此时可以使用Qualifier来指定名称 Component public class User { Autowired Qualifier(address1) private Address address; ... }Primary 让spring进行自动装配的时候默认使用首选的bean和Qualifier一个效果。 Scope 声明 Spring Bean 的作用域使用方法: Bean Scope(singleton) public Person personSingleton(){return new Person(); } 四种常见的 Spring Bean 的作用域 singleton : 唯一 bean 实例Spring 中的 bean 默认都是单例的。 prototype : 每次请求都会创建一个新的 bean 实例。 request : 每一次 HTTP 请求都会产生一个新的 bean该 bean 仅在当前 HTTP request 内有效。 session : 每一次 HTTP 请求都会产生一个新的 bean该 bean 仅在当前 HTTP session 内有效。 Bean Bean注解主要的作用是告知Spring被此注解所标注的类将需要纳入到Bean管理工厂中。含义注入类、一般用来注入系统类 注解在方法上声明当前方法的返回值为一个bean替代xml中的方式 Value 使用在字段、构造器参数和方法参数上。Value可以指定属性取值的表达式支持通过#{}使用SpringEL来取值也支持使用${}来将属性来源中(Properties文件、本地环境变量、系统属性等)的值注入到bean的属性中。 注入普通字符 注入操作系统属性 注入表达式结果 注入其它bean属性 注入文件资源 注入网站资源 注入配置文件 Value三种情况的用法。 ${}是去找外部配置的参数将值赋过来 value(${message1}) String message1;#{}是SpEL表达式去寻找对应变量的内容 #{}直接写字符串就是将字符串的值注入进去 3.2功能性注解 EnableScheduling 在配置类上使用开启计划任务的支持 含义启动任务调度 位置标注类 Scheduled 来申明这是一个任务包括cron,fixDelay,fixRate等类型方法上需先开启计划任务的支持 EnableAspetJautoProxy 含义启动自动代理工厂位置标注类Lazy 此注解使用在Spring的组件类上。默认的Spring中Bean的依赖一开始就被创建和配置。如果想要延迟初始化一个bean那么可以在此类上使用Lazy注解表示此bean只有在第一次被使用的时候才会被创建和初始化。此注解也可以使用在被Configuration注解的类上表示其中所有被Bean注解的方法都会延迟初始化。 EnableAspectAutoProxy开启对AspectJ自动代理的支持 EnableAsync开启异步方法的支持 EnableScheduling开启计划任务的支持 EnableWebMvc开启web MVC的配置支持 EnableConfigurationProperties开启对ConfigurationProperties注解配置Bean的支持 EnableJpaRepositories开启对SpringData JPA Repository的支持 EnableTransactionManagement开启注解式事务的支持 EnableCaching开启注解式的缓存支持 Import 要导入到容器中的组件 含义导入其他配置类位置配置类 Import({Color.class, MyImportSelector.class, MyImportBeanDefinitionRegistrar.class}) public class MainConfig2 {Scope(prototype)Bean(person)public Person person() {System.out.println(我是Person);return new Person(素小暖,25);} }Profile 指定组件在哪个环境的情况下才能被注册到容器中不指定任何环境下都能注册这个组件。 Conditional 通过实现Condition接口并重写matches方法从而决定该bean是否被实例化。 Required 主要用在 setter 方法上它表示该 setter 方法的属性必须要在配置时注入值。否则就会报 BeanInitializationException 异常。详情看这个大佬的文章Spring之Required注解 CrossOrigin 位置Controller接口方法含义跨域注解浏览器从一个域名的网页去请求另一个域名的资源时域名、端口、协议任一不同都是跨域可以简单理解如果前端端口是localhost:8080后端端口是localhost:9090controller配置了CrossOrigin 没有添加其他参数默认如何端口都可以访问可以实现跨越访问也可以使用其他配置类实现跨域访问。作用 在controller上添加CrossOrigin注解用来开启跨域请求让其他域的请求可以访问该controller否则所有其他域的访问会全部被拒绝。3.3AOP相关注解 Spring支持AspectJ的注解式切面编程。 在java配置类中使用EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持 Aspect 声明一个切面 After 在方法执行之后执行方法上 Before 在方法执行之前执行方法上 Around 在方法执行之前与之后执行方法上 PointCut 声明切点 第四章、SpringMvc常用注解 EnableWebMvc 在配置类中开启Web MVC的配置支持。 4.1常见的处理 HTTP 请求 RequestMapping RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射。当此注解用在Class上时就创造了一个基础url其所有的方法上的RequestMapping都是在此url之上的。 修饰类一级路径 (/init) 修饰方法-二级路径 (/user/init) 注解拥有以下的六个配置属性 value:映射的请求URL或者其别名代表请求路径 method:兼容HTTP的方法名GetMapping、PostMapping。可以使用其method属性来限制请求匹配的http method params:请求在必须要携带的参数设置根据HTTP参数的存在、缺省或值对请求进行过滤 header:根据HTTP Header的存在、缺省或值对请求进行过滤 consume:设定在HTTP请求正文中允许使用的媒体类型 product:在HTTP响应体中允许使用的媒体类型 在使用RequestMapping之前请求处理类还需要使用Controller或RestController进行标记 ControllerRequestMapping(/users)public class UserController {RequestMapping(method RequestMethod.GET)public String getUserList() {return users;}}GetMapping,PostMapping,DeleteMapping PutMapping,PatchMapping GetMapping注解用于处理HTTP GET请求 PostMapping注解用于处理HTTP POST请求 DeleteMapping注解用于处理HTTPDelete请求 PutMapping注解用于处理HTTP PUT请求 PatchMapping注解用于处理HTTP PATCH请求 并将这些请求映射到具体的处理方法中。它们相当于是RequestMapping(methodHttpMethod.GET)这样的快捷方式。 4.2前后端传值 PathVariable 使用PathVariable将路径中的参数绑定到请求方法参数上。 RequestMapping(/users/{uid})public String execute(PathVariable(uid) String uid){}RequestBodyRequestHeader RequestParamRequestPart RequestBody在处理请求方法的参数列表中使用读取 Request 请求,将HTTP请求正文的JSON或XML串行化为Java对象。它可以接收到数据之后自动将数据绑定到 Java 对象上去请求主体参数是通过HttpMessageConverter传递的根据请求主体中的参数名与对象的属性名进行匹配并绑定值。此外还可以通过Valid注解对请求主体中的参数进行校验。 RequestHeader此注解用在请求handler方法的参数上用于将http请求头部的值绑定到参数上。 RequestParam此注解用在请求handler方法的参数上用于将http请求参数的值绑定到参数上。 RequestPart此注解用在请求handler方法的参数上用于将文件之类的multipart绑定到参数上。 ResponseBody ResponseBody会自动将控制器中方法的返回值写入到HTTP响应中。特别的ResponseBody注解只能用在被Controller注解标记的类中。如果在被RestController标记的类中则方法不需要使用ResponseBody注解进行标注。 ResponseStatus ResponseStatus注解可以标注请求处理方法。使用此注解可以指定响应所需要的HTTP STATUS。特别地我们可以使用HttpStauts类对该注解的value属性进行赋值。 ExceptionHandler 1、ExceptionHander注解用于标注在方法当控制器中的方法抛出异常时Spring会自动捕获异常并将捕获的异常信息传递给被ExceptionHandler标注的方法。在此方法可以声明对Exception的处理逻辑。 2、如果Controller下有多个ExceptionHandler注解那么上面的异常类型不能出现一样的否则运行时抛异常。 Controller RequestMapping(/testController) public class TestController {RequestMapping(/demo1)ResponseBodypublic Object demo1(){//不需要try {} catch {}int i 1 / 0;return new Date();}//TestController 内的任何异常都会被兜住ExceptionHandler({RuntimeException.class})public ModelAndView fix(Exception ex){System.out.println(do This);return new ModelAndView(error,new ModelMap(ex,ex.getMessage()));} } ControllerAdvice 此注解用于class上。前面说过可以对每一个controller声明一个ExceptionMethod。这里可以使用ControllerAdvice来声明一个类来统一对所有RequestMapping方法来做ExceptionHandler、InitBinder以及ModelAttribute处理。 ModelAttribute 1ModelAttribute注释方法 如果把ModelAttribute放在方法的注解上时代表的是该Controller的所有方法在调用前先执行此ModelAttribute方法。可以把这个ModelAttribute特性应用在BaseController当中所有的Controller继承BaseController即可实现在调用Controller时先执行ModelAttribute方法。比如权限的验证也可以使用Interceptor等。 2ModelAttribute注释一个方法的参数 当作为方法的参数使用指示的参数应该从模型中检索。如果不存在它应该首先实例化然后添加到模型中一旦出现在模型中参数字段应该从具有匹配名称的所有请求参数中填充。 SessionAttributes 此注解用于type级别用于将JavaBean对象存储到session中。一般和ModelAttribute注解一起使用。如下 ModelAttribute(user)public PUser getUser() {}// controller和上面的代码在同一controller中ControllerSeesionAttributes(value user, types {User.class})public class UserController {}Transactional Transactional 注解放在类级别时表示所有该类的公共方法都配置相同的事务属性信息。EmployeeService 的所有方法都支持事务并且是只读。当类级别配置了Transactional方法级别也配置了Transactional应用程序会以方法级别的事务属性信息来管理事务换言之方法级别的事务属性信息会覆盖类级别的相关配置信息。需要注意的是此注解并不激活事务行为它仅仅是一个元数据会被一些运行时基础设施来消费。 Scheduled 此注解使用在方法上声明此方法被定时调度。使用了此注解的方法返回类型需要是Void并且不能接受任何参数。 第二个与第一个不同之处在于其不会等待上一次的任务执行结束。 Scheduled(fixedDelay1000)public void schedule() {}Scheduled(fixedRate1000)public void schedulg() {}Async 此注解使用在方法上声明此方法会在一个单独的线程中执行。不同于Scheduled注解此注解可以接受参数。 使用此注解的方法的返回类型可以是Void也可是返回值。但是返回值的类型必须是一个Future。 第五章、SpringBoot常用注解 SpringBootApplication 这个注解是springboot启动类上的一个注解是一个组合注解它的主要作用就是标记说明这个类是springboot的主配置类springboot可以运行这个类里面的main()方法来启动程序此注解相当于Configuration、EnableAutoConfiguration和ComponentScan的组合。 EnableAutoConfiguration EnableAutoConfiguration注解此注解通常被用在主应用class上用于通知Spring根据当前类路径下引入的依赖包自动配置与这些依赖包相关的配置项。 RestController 相当于是Controller和ResponseBody的组合注解。返回json数据不需要在方法前面加ResponseBody注解了但使用RestController这个注解就不能返回jsp,html页面视图解析器无法解析jsp,html页面 RestControllerAdvice 此注解用于class上同时引入了ControllerAdvice和ResponseBody两个注解。 ConfigurationProperties 通过ConfigurationProperties读取配置信息并与 bean 绑定 第六章、json常用注解 JsonIgnoreProperties 此注解是类注解作用是json序列化时将java bean中的一些属性忽略掉序列化和反序列化都受影响。 写法将此标签加在user类的类名上 可以多个属性也可以单个属性。 //生成json时将name和age属性过滤 JsonIgnoreProperties({name},{age}) public class user {private String name;private int age; }JsonIgnore 此注解用于属性或者方法上最好是属性上作用和上面的JsonIgnoreProperties一样。 JsonFormat 此注解用于属性或者方法上最好是属性上可以方便的把Date类型直接转化为我们想要的模式比如 public class User{JsonFormat(pattern “yyyy-MM-dd HH-mm-ss”)private Date date; }JsonSerialize 此注解用于属性或者getter方法上用于在序列化时嵌入我们自定义的代码比如序列化一个double时在其后面限制两位小数点。 JsonDeserialize 此注解用于属性或者setter方法上用于在反序列化时可以嵌入我们自定义的代码 JsonIgnoreType 标注在类上当其他类有该类作为属性时该属性将被忽略。 JsonProperty JsonProperty 可以指定某个属性和json映射的名称。例如我们有个json字符串为{“user_name”:”aaa”} 而java中命名要遵循驼峰规则则为userName这时通过JsonProperty 注解来指定两者的映射规则即可。这个注解也比较常用。 public class SomeEntity {JsonProperty(user_name)private String userName; }致谢 参考了以下几篇文章 Spring最常用的7种注解整理让你在工作中事半功倍 Spring异常处理ExceptionHandler 小学妹问Mybatis常见注解有哪些 接近8000字的Spring/Spring常用注解总结安排 Java开发者必须掌握的20个Spring常用注解 param详解注解 哪吒Spring常用注解绝对经典
http://www.huolong8.cn/news/50870/

相关文章:

  • 大学生做爰网站阜阳讯拓网站建设
  • 青海省建设厅官方网站建设云现在网站还用asp做
  • 盘锦门户网站制作做网站的项目实施方案
  • 免费建微网站2023年又开始封控了吗
  • 自适应网站制作公司什么是html5网站
  • 无刷新网站太原seo关键词优化
  • 中小企业网站开发河南关键词seo
  • 游戏网站建设系统介绍温州seo平台
  • 此网站域名即将过期淘宝网站做多久
  • python做网站的多吗调研报告万能模板
  • 网站保护等级是企业必须做的么陕西政务服务网
  • 黑色门户网站源码在国外做黄皮网站违法么
  • 安顺市哪里可以做网站网络绿化网站建设哪家权威
  • 上海市建设安全协会网站打不开wordpress装到哪里
  • 宿迁莱布拉网站建设wordpress外贸询盘插件
  • 做网站例子图片描述做网站颜色黑色代码多少钱
  • 购物网站 购物车界面如何做软考网络工程师中级
  • 专门做排行的网站搭建是什么意思
  • 免费稳定网站空间个人小程序开发
  • 尤溪网站建设如何在虚拟主机一键安装wordpress
  • 做网站服务器和域名合肥瑶海区什么时候解封
  • wordpress建站收录快遵义做网站的公司
  • 汉沽网站建设asp网站做seo
  • 双滦区seo整站排名没有虚拟主机怎么建网站
  • 唐山哪里有做网站的进入网站wordpress配置
  • dede网站模板页在什么文件夹wordpress 函数 文件
  • 做网站时图片要切片有什么作用专业做网站的人
  • 什么网站可以制作套餐徐州免费建站模板
  • 天津市精神文明建设网站兰州市做网站的企业有哪些
  • 郑州企业网站推广外包wordpress 文章过滤