Java EE

@JsonView注解的使用

我的未来我决定 提交于 2020-08-08 23:29:39
看到一个新的注解以前没有用过,记录一下使用方法。 注意是:com.fasterxml.jackson.annotation.JsonView @JsonView可以过滤pojo的属性,使Controller在返回json时候,pojo某些属性不返回,比如User的密码,一般是不返回的,就可以使用这个注解。 @JsonView使用方法:   1,使用 接口 来声明多个视图   2,在pojo的get方法上指定视图   3,在Controller方法上指定视图 例子:条件查询时候不返回用户的密码,查看详情时候返回用户的密码 User: package com.imooc.dto; import com.fasterxml.jackson.annotation.JsonView; public class User { public interface UserSimpleView {}; public interface UserDetailView extends UserSimpleView{}; // 继承 private String username; private String password; // UserSimpleView视图有 @JsonView(UserSimpleView. class ) public String getUsername() {

简单聊聊SpringMVC

喜欢而已 提交于 2020-08-08 21:50:37
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star : https://github.com/ZhongFuCheng3y/3y 这篇 SpringMVC 被催了很久了,这阵子由于做整合系统的事,所以非常非常地忙。这周末早早就回了公司肝这篇文章了。 如果关注三歪的同学会发现,三歪最近写的很多文章都是结合了现有的系统去写的。这些问题都是真实开发场景会遇到的、用的上的,这些案例对未工作的同学帮助应该还是蛮大的。 不多BB了,还是进入今天的正题吧「 SpringMVC 」 先简单聊聊SpringMVC 如果你们玩知乎,很可能会看到我的身影。我经常会去知乎水回答。在知乎有很多初学者都会问的一个问题:「 我学习SpringMVC需要什么样的基础 」 我一定会让他们先学Servlet,再学SpringMVC的。虽然说我们在现实开发中几乎不会写原生Servlet的代码了,但我始终认为学完Servlet再学SpringMVC,对理解SpringMVC是有好处的。 三歪题外话:我当时在学SpringMVC之前其实已经接触过另外一个web框架(当然了Servlet也是学了的),那就是「大名鼎鼎」的Struts2。只要是Struts2有的功能,SpringMVC都会有。 当时初学Struts2的时候用的是XML配置的方式去开发的,再转到SpringMVC注解的时候

SpringMVC项目,web包下 webapp中无法访问jsp页面

纵然是瞬间 提交于 2020-08-08 21:39:05
当idea中已有一个Project的情况下,再添加一个新Module的时候,Module的working directory可能默认还是Project的目录。 这样导致的问题是Run Module的Spring boot项目时,其使用的application.properties配置文件不是自己resources目录下的,而是Project工程下面的。 解决办法是修改一下Run/Debug Configurations中的Working directory为 $MODULE_WORKING_DIR$ 即可 来源: oschina 链接: https://my.oschina.net/u/4424718/blog/4477128

Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

◇◆丶佛笑我妖孽 提交于 2020-08-08 21:23:46
当大潮退去,才知道谁在裸泳。。关注公众号【 BAT的乌托邦 】开启专栏式学习,拒绝浅尝辄止。本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈、MyBatis、中间件等小而美的专栏供以学习哦。 目录 前言 关于版本号 正文 简单回忆2.2版本的新特性 主要新特性 优雅停机 配置属性的调整 删除不推荐使用的类/方法/属性 配置文件位置支持通配符 web下的日期转换支持配置 其它新特性 更改某些依赖最低版本要求 核心依赖升级 三方库依赖升级 Spring Data Neumann升级带来的变化 关于Validation 移除一些maven插件 支持Java14 Docker支持 Fat Jar支持优化 嵌入式Servlet Web Server线程配置 WebFlux基础路径配置 活性探测器 Actuator增强 好基友Spring Cloud什么时候跟上? 升级建议:等等 总结 前言 各位小伙伴大家好,我是A哥。北京时间2020-05-15,Spring Boot 2.3.0版本正式发布了,次版本号的升级,一般会有些新特性出来。作为Java Coder的我们有必要一览它的新new Feature,keep下技术节奏嘛。 A哥“第二时间”知道了这个消息,然后在自己本机(请注意:非生产环境)体验了一把,然后再结合Spring Boot官方的

Hystrix 分布式系统限流、降级、熔断框架

狂风中的少年 提交于 2020-08-08 21:22:33
一:为什么需要Hystrix? 在大中型分布式系统中,通常系统很多依赖(HTTP,hession,Netty,Dubbo等),如下图: 在高并发访问下,这些依赖的稳定性与否对系统的影响非常大,但是依赖有很多不可控问题:如网络连接缓慢,资源繁忙,暂时不可用,服务脱机等. 如下图:QPS为50的依赖 I 出现不可用,但是其他依赖仍然可用. 当依赖I 阻塞时,大多数服务器的线程池就出现阻塞(BLOCK),影响整个线上服务的稳定性.如下图: 在复杂的分布式架构的应用程 序有很多的依赖,都会不可避免地在某些时候失败。高并发的依赖失败时如果没有隔离措施,当前应用服务就有被拖垮的风险。 例如: 一个依赖30个SOA服务的系统,每个服务99.99%可用。 99.99%的30次方 ≈ 99.7% 0.3% 意味着一亿次请求 会有 3,000,00次失败 换算成时间大约每月有2个小时服务不稳定. 随着服务依赖数量的变多,服务不稳定的概率会成指数性提高. 解决问题方案:对依赖做隔离,Hystrix就是处理依赖隔离的框架,同时也是可以帮我们做依赖服务的治理和监控. Netflix 公司开发并成功使用Hystrix,使用规模如下: The Netflix API processes 10+ billion HystrixCommand executions per day using thread

教学大纲 :面相对象 抽象 接口

拟墨画扇 提交于 2020-08-08 19:50:16
Java面向对象编程有三大特性,它们是封装、继承和多态。 封装: 封装将复杂的功能封装起来,对外开放一个接口,简单调用即可 继承: 让类与类之间产生关系,为多态打下基础 多态: 子类对象可以赋值给父类变量,但运行是仍表现出子类的行为特征 抽象和接口 从定义上来讲: 定义 abstruct class className interface className 构造方法 有 无 成员变量 有 无 静态成员变量 有 有( 默认即为public static final类型 ) 方法是否必须为抽象 否 是( 默认即为public abstract类型 ) 静态方法 有 无 从使用上来讲: 继承抽象(单) 实现接口(多) 接口一般用于系统架构设计,定义系统通信之间的契约 抽象则是在代码重用方面发挥作用,如 import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public abstract class BaseServlet extends

深入浅出Spring MVC

折月煮酒 提交于 2020-08-08 19:16:41
摘要 本文旨在详细分析SpringMVC工作原理以及作为开发者如何基于SpringMVC做扩展。因为SpringMVC分析的文章比较多,所以本文重点讲解如何利用SpringMVC的扩展点实现我们的需求。 什么是Spring MVC SpringMVC的作用是什么呢?需要解决什么问题呢? 下图是一个客户端与服务端的交互 在之前的 详解http报文(2)-web容器是如何解析http报文的 一文中我也提到过。 这次再更细致的分析一遍。一个请求如何中客户端发到服务端,再从服务端返回内容。干的这件事在web中叫请求动态内容,区别于静态内容。在java语言中,为了解决这件事定义了一个规范就是servlet。具体的实现由各大厂商自己定义。 大体部分分为两部分一块是建立连接、一块是传输内容。所以servlet规范包括两大部分,,一部分是servlet接口,定义处理请求的规范。一部分是servlet容器的,去管理加载servlet实例。 轻量级的servlet容器有tomcat/jetty/undertow,servlet框架有SpringMVC/Struts/Webx这些,本篇重点讲解SpringMVC SpringMVC工作流程 Spring MVC 顾名思义就是处理Controll-Model-View的。 DispatchServlet 是入口,doDispatch方法开始处理请求

工作3年时间,他却拿到了35k,他只是掌握这七大架构!

萝らか妹 提交于 2020-08-08 19:14:09
Java高级架构师之所以叫他高级的,只是因为他懂的多,知道熟悉和使用各种框架,也知道怎么去实现的他的原理,知道怎么去使用才会达到木有bug,什么JVM虚拟机原理啊,JVM的调优啊让自己更好的写出性能更好的代码。 Java高级程序员 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。 2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。 3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。 4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必须掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT, SWT。你还应该对UI部件的JAVABEAN组件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。 5.你需要学习java数据库技术

springdataJpa对无主键表或视图查询的支持

大憨熊 提交于 2020-08-08 19:11:04
因为jpa在映射实体是需要一个id,所以我们的实体类必须至少需要一个id字段, 当对无主键表或视图查询时,我们可以定义一个空的@id即可。 示例如下 实体: @Data @Entity @Table(name="Student") public class Student {    @Id // 添加一个空的id标识,因为jpa在映射实体是需要一个id,这个必须    @Column(name = "shool") private Long shool; private String name; private int age; private String address; } 接口:   @Query(value = "select s from Student s where age in (?1) )   public List<Student > findByIdToIn( List<Integer> sysage); 来源: oschina 链接: https://my.oschina.net/u/4405841/blog/4290323

Publishing failed with multiple errors Could not delete E:\apache-tomcat-7.0.69\webapps\SafeStora...

荒凉一梦 提交于 2020-08-08 18:12:24
eclipse每次修改jsp页面总会报错“ Publishing failed with multiple errors Could not delete E:\apache-tomcat-7.0.69\webapps\SafeStorage\logs\all.log. May be locked by another process. Could not delete E:\apache-tomcat-7.0.69\webapps\SafeStorage\logs\debugs.log. May be locked by another process. Could not delete E:\apache-tomcat-7.0.69\webapps\SafeStorage\logs\errors.log. May be locked by another process. ” 解决办法:双击tomcat,将“Server module without publishing”勾选上即可,如图: 来源: oschina 链接: https://my.oschina.net/u/4279277/blog/4479344