- poi 实现表头斜线功能
GoodStudyAndDayDayUp
javapoi实现表头斜线功能
1.poi实现表头斜线功能2.直接上codeprivatevoidsetDrigonal(){if(sheetinstanceofXSSFSheet){XSSFSheetxssfSheet=(XSSFSheet)sheet;XSSFDrawingdrawing=xssfSheet.createDrawingPatriarch();//从左上(0,0)到右下(1023,255)dagron_1(dr
- JAVA基础| 反射
2301_79433391
开发语言javajvm
目录1、反射定义2、class类class类的本质JVM对class的加载Class实例与class的关系获取Class实例的方法Class实例比较与instanceof的区别通过Class实例获取基本信息通过Class实例创建对象3、访问字段、调用方法访问字段调用方法4、调用构造方法、获取继承关系调用构造方法获取继承关系5、小结1、反射定义在Java中,只有JVM能创建Class实例,我们自己的
- JDK24,他来了,抗量子加密
剽悍一小兔
python开发语言
前言JDK24于2025年3月18日正式发布,下面看看都有哪些更新,新的语法都写了代码示例,内容有点多收藏起来慢慢看看。我也来蹭一波流量一、语言与编程模型改进1.模式匹配与原始类型支持JEP488(第二次预览):允许在instanceof和switch中使用原始类型模式消除基元类型在模式匹配中的限制,提升代码的简洁性和表达能力。//------------switchint num = 5;
- 前端手写题(一)
旺代
前端javascript
目录一、深拷贝二、防抖三、节流四、函数柯里化五、instanceof六、typeof一、深拷贝实现步骤:检查是否为基本类型,如果是则直接返回检测是否为循环引用,如果是则返回缓存对象处理特殊对象类型创建新对象/数组,同时保留原型链缓存当前对象,防止循环引用递归拷贝所有属性返回克隆结果functiondeepClone(target,map=newWeakMap()){//基本类型直接返回if(tar
- 【appium】6.appium遇到的问题
大卫软件测试
appium
1.appium-python-client修改版本1.5为5.1.1,后执行python程序时,提示:raiseTypeError(TypeError:missing1requiredkeyword-onlyargument:'options'(instanceofdriver`options.Options`class)你遇到的错误:TypeError:missing1requiredkeyw
- 鸿蒙中,类型检查typeof 和 instanceof 操作符
梦想不只是梦与想
鸿蒙harmonyos华为鸿蒙类型判断
本文同步发表于我的微信公众号,微信搜索程语新视界即可关注,每个工作日都有文章更新在鸿蒙(HarmonyOS)应用开发中,typeof和instanceof是TypeScript/JavaScript中用于类型检查的两个关键操作符,但它们的用途和底层逻辑有显著差异。以下是详细对比和应用场景:1.typeof:检测基本数据类型作用返回一个字符串,表示操作数的基本数据类型(如"number"、"stri
- ABP微服务架构中网关层NullReferenceException问题解析与HTTP配置优化
酷炫码神
架构微服务http
ABP微服务架构中网关层NullReferenceException问题解析与HTTP配置优化一、网关层System.NullReferenceException问题解析1.1问题现象与原因分析在ABP微服务架构开发过程中,网关层启动后调用微服务接口时出现以下异常:System.NullReferenceException:Objectreferencenotsettoaninstanceofan
- java保留字详解_java复习基础知识——java保留字
奕成的备忘
java保留字详解
ava关键字列表(依字母排序共51组):abstract,assert,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,enum,extends,final,finally,float,for,if,implements,import,instanceof,int,interface,lo
- Python面向对象编程:深入理解cls关键字
Yant224
python#面向对象编程pythoncls类方法classmethod面向对象编程工厂模式元类编程
一、cls的本质是什么?1.1官方定义Python文档描述:“clsisaconventionforthefirstparameterofaclassmethod.Itreferstotheclassitself,notaninstanceoftheclass.”1.2核心特性特性说明命名约定非Python关键字,但被PEP8强烈推荐使用类引用指向当前类本身(不是实例)自动传递Python在调用类
- Java基础面试题大全(2022最新版汇总)
一、基础篇1.1.Java语言有哪些特点1.2.面向对象和面向过程的区别1.3.八种基本数据类型的大小,以及他们的封装类1.4.标识符的命名规则。1.5.instanceof关键字的作用1.6.Java自动装箱与拆箱1.7.重载和重写的区别1.8.equals与==的区别1.9.Hashcode的作用1.10.String、StringStringBuffer和StringBuilder的区别是什
- 前端八股文 - JavaScript 篇
啃火龙果的兔子
前端javascript开发语言
1.数据类型1.1基本数据类型NumberStringBooleanNullUndefinedSymbol(ES6)BigInt(ES11)1.2引用数据类型ObjectArrayFunctionDateRegExp1.3类型判断typeof:可以判断基本类型(除null返回object外)instanceof:判断引用类型Object.prototype.toString.call():最准确的
- 原型链与继承
JavaScript原型链、继承、类、实例、构造函数、typeof和instanceof的区别在JavaScript中,原型链和继承是核心概念之一。通过原型链,对象可以访问其构造函数的原型对象上的属性和方法。以下是对这些概念的详细解释,并结合Vue3提供示例。1.原型链与继承每个对象都有一个内部属性[[Prototype]],它指向该对象的原型对象。当通过对象访问一个属性或方法时,如果对象本身没有
- nodejs的 面试大全 容易 难的都有
Demo_xr
nodejsjavascript开发语言node.js
1.如何区分数组和对象?方法一:通过ES6中的Array.isArray来识别Array.isArray([])//trueArray.isArray({})//false方法二:通过instanceof来识别[]instanceofArray//true{}instanceofArray//false方法三:通过调用constructor来识别{}.constructor//返回object[]
- OpenCV resize()缩放图片 error: (-215:Assertion failed) inv_scale_x > 0 in function ‘cv::resize’
菜鸟看点
QT_C++opencvqtc++
目录Python报错C++嵌入式报错Python报错参考:OpenCVresize()缩放图片error:(-215:Assertionfailed)inv_scale_x>0infunction‘cv::resize’C++嵌入式报错terminatecalledafterthrowinganinstanceof'cv::Exception'what():OpenCV(4.5.4)/docker
- ServerHttpRequest 和 HttpServletRequest区别以及获取IP
qililong88
后台工具类springjavatcp/ip
1区别根据SpringDocs:ServerHttpRequest接口实现基于HttpServletRequest接口。一个名为ServletServerHttpRequest的类实现了ServerHttpRequest接口,它还有公共方法getServletRequest()来获取实际的HttpServletRequestif(exchange.getRequest()instanceofSer
- Jackson 自定义序列化/反序列化,处理java.sql.Time
杨豆芽
jacksonjava开发语言
Jackson只提供了针对java.sql.Time序列化工具,没有提供反序列化,从而导致在反序列化时报错:ausedby:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:Cannotconstructinstanceof`java.sql.Time`(noCreators,likedefaultconstruct,exi
- 如何判断`instanceof`操作符的返回值是否为`true`
foundbug999
算法java
理解instanceof操作符的返回值instanceof操作符用于检查一个对象是否是某个类(或接口、抽象类)的实例。它的返回值是一个布尔值,即true或false。当对象是指定类(或其子孙类)的实例时,返回true;否则返回false。直接在条件语句中判断最常见的方式是在if语句或者while语句等条件语句中使用instanceof操作符。示例:classAnimal{}classDogexte
- CesiumInstancedMesh 实例
力博荣三维可视化
cesiumjava数据库mysqlcesium
CesiumInstancedMesh实例import*asCesiumfrom'cesium';//Three.js风格的InstancedMesh类,https://threejs.org/docs/#api/en/objects/InstancedMeshexportclassCesiumInstancedMesh{/***CreatesaninstanceofInstancedMesh.*
- Java核心:Object与Objects方法全解析
77tian
java开发语言
Java中的Object与Objects常用方法解析一、Object类核心方法作为所有Java类的超类,Object定义了对象的基础行为,需重点掌握以下方法:equals()publicclassStudent{privateStringid;@Overridepublicbooleanequals(Objecto){if(this==o)returntrue;if(!(oinstanceofSt
- Java基础查漏补缺(个人向)
薛定谔妖
Java基础java开发语言
关键字不熟悉的关键字instanceofthrow(手动的生成一个异常)throws(处理异常的方式)nativestrictfptransientvolatileassertthis关键字的使用this可以调用构造器classPerson{Stringname;intage;//空参构造器publicPerson(){}//初始化name的构造器publicPerson(Stringname){
- 杏仁玫瑰花饼的Java学习日记第十一天(super,方法重写,多态,instanceof关键字,static关键字,抽象类,接口)
杏仁海棠花饼
java学习
一,前言今天就是第十一天了,继续努力。二,super关键字详解在Java中,super关键字是一个引用变量,主要用于引用直接父类的对象。它在继承关系中扮演着重要角色,能够帮助子类访问父类的属性、方法和构造函数。1.访问父类的成员变量当子类与父类拥有同名的成员变量时,子类默认访问自己的变量。使用super关键字可以显式访问父类的同名变量。示例:classParent{ intnum=10;}cl
- js递归遍历json所有数据
stoneSkySpace
js
//递归遍历json所有数据functiongetAllJson(jsons,name,sign){if(name==""||name==undefined){name="json"}for(keyinjsons){vark=name+sign+key;if(!(jsons[key]instanceofObject)){console.log(k+"="+jsons[key]);//如果不是Obj
- java的面向对象思想
保利九里
java开发语言
文章目录初识面向对象面向过程&面向对象什么是面向对象方法回顾和加深方法的定义方法的调用类与对象的关系对象的创建分析类与对象小结面向对象三大特性封装封装的好处继承supersuper注意点方法重写方法重写注意点多态多态注意点instanceofinstanceof注意点抽象类和接口抽象类抽象类的注意点接口接口的注意点四种内部类详解内部类成员内部类静态内部类局部内部类匿名内部类匿名内部类关键点总结等效
- Java面试题-基础
@Corgi
Java面试题java开发语言Java面试题
Java面试题-基础1、Java语言有哪些特点?2、面向对象和面向过程的区别是什么?3、说说标识符的命名规则?4、说说Java八种基本数据类型的大小以及他们的封装类?5、instanceof关键字有什么作用?6、自动装箱与自动拆箱是什么?7、重载和重写有什么区别?8、equals与==有什么区别?9、Hashcode有什么作用?10、String、StringBuffer和StringBuilde
- cannot construct instance of ‘xxx’(no creators,like default constructor, exist)
小李小李晴空万里
cannotconstructinstanceof‘xxx’(nocreators,likedefaultconstructor,exist)这句话的意思是不能通过构造器创建对象,可能缺少默认构造器;新加一个默认构造器就好了;如果你有了有参构造器,那么缺省的构造器就没有了,如果没有任何参数的一些框架转换就会报错;
- Java基本运算符
双双..
狂神学Javajava算法开发语言
算数运算符:+,-,*,/,%(取余,模运算),++,–赋值运算符:=关系运算符:,,>=,==,!=instanceof逻辑运算符:&&,||,!位运算:&,|,^,>>,>>(了解)条件运算符:?:扩展赋值运算符:+=,-=,*=,/=自增,自减运算符publicclassDemo03{publicstaticvoidmain(String[]args){inta=3;intb=a++;//执
- Java24新增特性
有梦想的攻城狮
Javajavajava24新特性
Java24(OracleJDK24)作为Java生态的重要更新,聚焦AI开发支持、后量子安全、性能优化及开发者效率提升,带来20余项新特性和数千项改进。以下是核心特性的分类解析:一、语言特性增强:简化代码与模式匹配原始类型模式匹配(JEP488)支持在instanceof和switch中直接使用int、boolean等原始类型,消除拆箱/装箱冗余代码,提升AI推理场景的数据处理效率。示例:传感器
- 手写一个深拷贝函数
宋哈哈
手写系列
Object.assign和展开运算符都是浅拷贝如何实现一个深拷贝呢要考虑传入变量为null和undefined的情况要处理日期Date和正则RegExp的情况不是引用类型的直接返回functiondeepClone(obj){if(obj==null)returnobj;//如果是null或者undefined直接返回//正则表达式或者日期对象直接返回if(objinstanceofDate)r
- 前端面试-JavaScript 数据类型检测全解
前端Kingtato
前端面试javascript
目录一、基础检测方法二、方法深度解析1.typeof运算符2.instanceof运算符3.终极检测方案三、特殊场景检测方案四、手写实现原理1.通用类型检测函数2.改进版数组检测(兼容旧浏览器)五、常见面试陷阱六、最佳实践指南七、扩展知识总结一、基础检测方法方法能力范围经典案例注意事项typeof检测基本数据类型(除null)typeof'str'→'string'typeofnull→'obje
- STM32和ROS串口通信常见问题汇总答疑
Jiangxun9390
从零搭建ros机器人平台机器人
STM32和ROS串口通信常见问题汇总答疑大家好,我是白茶清欢,最近看了博客文章《stm32和ros的串口通信》有很多问题的评论,这里汇总回复一下。问题1:运行时报错如下:rosruntopic_examplepublish_nodeterminatecalledafterthrowinganinstanceof'boost::exception_detail::clone_impl>'what(
- 安装数据库首次应用
Array_06
javaoraclesql
可是为什么再一次失败之后就变成直接跳过那个要求
enter full pathname of java.exe的界面
这个java.exe是你的Oracle 11g安装目录中例如:【F:\app\chen\product\11.2.0\dbhome_1\jdk\jre\bin】下的java.exe 。不是你的电脑安装的java jdk下的java.exe!
注意第一次,使用SQL D
- Weblogic Server Console密码修改和遗忘解决方法
bijian1013
Welogic
在工作中一同事将Weblogic的console的密码忘记了,通过网上查询资料解决,实践整理了一下。
一.修改Console密码
打开weblogic控制台,安全领域 --> myrealm -->&n
- IllegalStateException: Cannot forward a response that is already committed
Cwind
javaServlets
对于初学者来说,一个常见的误解是:当调用 forward() 或者 sendRedirect() 时控制流将会自动跳出原函数。标题所示错误通常是基于此误解而引起的。 示例代码:
protected void doPost() {
if (someCondition) {
sendRedirect();
}
forward(); // Thi
- 基于流的装饰设计模式
木zi_鸣
设计模式
当想要对已有类的对象进行功能增强时,可以定义一个类,将已有对象传入,基于已有的功能,并提供加强功能。
自定义的类成为装饰类
模仿BufferedReader,对Reader进行包装,体现装饰设计模式
装饰类通常会通过构造方法接受被装饰的对象,并基于被装饰的对象功能,提供更强的功能。
装饰模式比继承灵活,避免继承臃肿,降低了类与类之间的关系
装饰类因为增强已有对象,具备的功能该
- Linux中的uniq命令
被触发
linux
Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行。在正常情 况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如 果输入文件用“- ”表示,则从标准输入读取。
AD:
uniq [选项] 文件
说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个
- 正则表达式Pattern
肆无忌惮_
Pattern
正则表达式是符合一定规则的表达式,用来专门操作字符串,对字符创进行匹配,切割,替换,获取。
例如,我们需要对QQ号码格式进行检验
规则是长度6~12位 不能0开头 只能是数字,我们可以一位一位进行比较,利用parseLong进行判断,或者是用正则表达式来匹配[1-9][0-9]{4,14} 或者 [1-9]\d{4,14}
&nbs
- Oracle高级查询之OVER (PARTITION BY ..)
知了ing
oraclesql
一、rank()/dense_rank() over(partition by ...order by ...)
现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:
select e.ename, e.job, e.sal, e.deptno
from scott.emp e,
(se
- Python调试
矮蛋蛋
pythonpdb
原文地址:
http://blog.csdn.net/xuyuefei1988/article/details/19399137
1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:
IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:
http://www.ibm.com/d
- webservice传递自定义对象时函数为空,以及boolean不对应的问题
alleni123
webservice
今天在客户端调用方法
NodeStatus status=iservice.getNodeStatus().
结果NodeStatus的属性都是null。
进行debug之后,发现服务器端返回的确实是有值的对象。
后来发现原来是因为在客户端,NodeStatus的setter全部被我删除了。
本来是因为逻辑上不需要在客户端使用setter, 结果改了之后竟然不能获取带属性值的
- java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针
百合不是茶
C语言的强大在于可以直接操作指针的地址,通过改变指针的地址指向来达到更改地址的目的,又是由于c语言的指针过于强大,初学者很难掌握, java的出现解决了c,c++中指针的问题 java将指针封装在底层,开发人员是不能够去操作指针的地址,但是可以通过引用来间接的操作:
定义一个指针p来指向a的地址(&是地址符号):
- Eclipse打不开,提示“An error has occurred.See the log file ***/.log”
bijian1013
eclipse
打开eclipse工作目录的\.metadata\.log文件,发现如下错误:
!ENTRY org.eclipse.osgi 4 0 2012-09-10 09:28:57.139
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContai
- spring aop实例annotation方法实现
bijian1013
javaspringAOPannotation
在spring aop实例中我们通过配置xml文件来实现AOP,这里学习使用annotation来实现,使用annotation其实就是指明具体的aspect,pointcut和advice。1.申明一个切面(用一个类来实现)在这个切面里,包括了advice和pointcut
AdviceMethods.jav
- [Velocity一]Velocity语法基础入门
bit1129
velocity
用户和开发人员参考文档
http://velocity.apache.org/engine/releases/velocity-1.7/developer-guide.html
注释
1.行级注释##
2.多行注释#* *#
变量定义
使用$开头的字符串是变量定义,例如$var1, $var2,
赋值
使用#set为变量赋值,例
- 【Kafka十一】关于Kafka的副本管理
bit1129
kafka
1. 关于request.required.acks
request.required.acks控制者Producer写请求的什么时候可以确认写成功,默认是0,
0表示即不进行确认即返回。
1表示Leader写成功即返回,此时还没有进行写数据同步到其它Follower Partition中
-1表示根据指定的最少Partition确认后才返回,这个在
Th
- lua统计nginx内部变量数据
ronin47
lua nginx 统计
server {
listen 80;
server_name photo.domain.com;
location /{set $str $uri;
content_by_lua '
local url = ngx.var.uri
local res = ngx.location.capture(
- java-11.二叉树中节点的最大距离
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class MaxLenInBinTree {
/*
a. 1
/ \
2 3
/ \ / \
4 5 6 7
max=4 pass "root"
- Netty源码学习-ReadTimeoutHandler
bylijinnan
javanetty
ReadTimeoutHandler的实现思路:
开启一个定时任务,如果在指定时间内没有接收到消息,则抛出ReadTimeoutException
这个异常的捕获,在开发中,交给跟在ReadTimeoutHandler后面的ChannelHandler,例如
private final ChannelHandler timeoutHandler =
new ReadTim
- jquery验证上传文件样式及大小(好用)
cngolon
文件上传jquery验证
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery1.8/jquery-1.8.0.
- 浏览器兼容【转】
cuishikuan
css浏览器IE
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
daizj
shell$#$?特殊变量
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:
$echo $$
运行结果
29949
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个
- 程序设计KISS 原则-------KEEP IT SIMPLE, STUPID!
dcj3sjt126com
unix
翻到一本书,讲到编程一般原则是kiss:Keep It Simple, Stupid.对这个原则深有体会,其实不仅编程如此,而且系统架构也是如此。
KEEP IT SIMPLE, STUPID! 编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真 正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原
- android Activity间List传值
dcj3sjt126com
Activity
第一个Activity:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import a
- tomcat 设置java虚拟机内存
eksliang
tomcat 内存设置
转载请出自出处:http://eksliang.iteye.com/blog/2117772
http://eksliang.iteye.com/
常见的内存溢出有以下两种:
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: Java heap space
------------
- Android 数据库事务处理
gqdy365
android
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事
- Java 打开浏览器
hw1287789687
打开网址open浏览器open browser打开url打开浏览器
使用java 语言如何打开浏览器呢?
我们先研究下在cmd窗口中,如何打开网址
使用IE 打开
D:\software\bin>cmd /c start iexplore http://hw1287789687.iteye.com/blog/2153709
使用火狐打开
D:\software\bin>cmd /c start firefox http://hw1287789
- ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件
justjavac
chromeGooglegoogle apichrome插件
Chrome Web Store 安装地址: https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice
由于众所周知的原因,只需替换一个域名就可以继续使用Google提供的前端公共库了。 同样,通过script标记引用这些资源,让网站访问速度瞬间提速吧
- 进程VS.线程
m635674608
线程
资料来源:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397567993007df355a3394da48f0bf14960f0c78753f000 1、Apache最早就是采用多进程模式 2、IIS服务器默认采用多线程模式 3、多进程优缺点 优点:
多进程模式最大
- Linux下安装MemCached
字符串
memcached
前提准备:1. MemCached目前最新版本为:1.4.22,可以从官网下载到。2. MemCached依赖libevent,因此在安装MemCached之前需要先安装libevent。2.1 运行下面命令,查看系统是否已安装libevent。[root@SecurityCheck ~]# rpm -qa|grep libevent libevent-headers-1.4.13-4.el6.n
- java设计模式之--jdk动态代理(实现aop编程)
Supanccy2013
javaDAO设计模式AOP
与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。
&
- Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持
wiselyman
spring 4
2.1 默认方法(default method)
java8引入了一个default medthod;
用来扩展已有的接口,在对已有接口的使用不产生任何影响的情况下,添加扩展
使用default关键字
Spring 4.2支持加载在默认方法里声明的bean
2.2
将要被声明成bean的类
public class DemoService {