- vuejs 项目部署到nginx
爱分享的程序员
vue使用
一.vuejs项目配置文件根目录创建vue.config.js文件。如下:二.运行npmrunbuild指令将打包出来的dist文件拷贝到服务器的指定目录三.ngxin配置文件四.在服务器的根目录创建一个文件夹my-project,将dist里面的文件拷贝到创建的这个文件夹下面五.浏览器访问项目的路径http://localhost/my-project
- VsCode中代码片段在MarkDown文件中不生效问题
Yuanymoon
MarkdownVsCodevscodemarkdown
在vsCode的Setting.config中添加以下代码:"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":true}如图:保存后,代码片段即可生效。另外,Markdown的代码片段添加方法如下图:Markdown默认无代码片段支持,原因未知,若有朋友知道可告诉我一声,谢谢。参考:VSCode中markdown文件内为什
- java:Apache Commons Configuration2占位符解析异常的正确解法:${prefix:name:-default}
10km
javajavaapacheconfiguration2变量插值Interpolation
问题重现在之前的博文《spring-boot:apachecommons-configuration2异常:java.lang.IllegalArgumentException:name原因分析》中,我们曾遇到SpringBootFat-Jar运行时因LaunchedURLClassLoader资源加载异常导致的启动失败问题。当时的解决方案是通过预创建空配置文件来规避异常1://旧方案:手动创建空
- 姓名案例_插值语法实现
JAVA代码搬运工
Vue前端vue.js前端
姓名案例_插值语法实现姓:名:全名:{{firstName}}-{{lastName}}Vue.config.productionTip=false//阻止vue在启动时生成生产提示。newVue({el:'#root',data:{firstName:'张',lastName:'三'}})
- 模板语法 (插值语法、指令语法)
JAVA代码搬运工
Vue前端vue.js
模板语法插值语法你好,{{name}}指令语法点我去{{school.name}}学习1点我去{{school.name}}学习2Vue.config.productionTip=false//阻止vue在启动时生成生产提示。newVue({el:'#root',data:{name:'jack',school:{name:'该去的地',url:'http://www.school.com',}}
- IDEA修改recent project的路径
胖毁青春,瘦解百病
#IDEA
有时候需要将某些项目统一放到另外一个工作区间,此时可以通过修改下面的文件来解决文件路径问题C:\Users%username%.IntelliJIdea2019.3\config\options\recentProjects.xml.IntelliJIdea2019.3为2019年IDEA的路径,2020年后面升级之后移动到了C:\Users%username%\AppData\Roaming\J
- window 更改Jupyter Notebook默认工作路径
hylreg
jupyteridepython
在Windows上更改JupyterNotebook的默认工作路径可以通过以下步骤进行:方法1:修改Jupyter配置文件生成Jupyter配置文件(如果尚未生成):打开命令提示符(cmd)或PowerShell。输入以下命令并按回车:jupyternotebook--generate-config这会在用户目录下生成一个配置文件jupyter_notebook_config.py,通常路径为C:
- .Net 不同版本的.Net框架的代码之间互相引用
这个月太忙没时间看C++
技术.net
有时候想用高版本的.Net框架,而某一部分封装好的工具类是低版本的例:使用.Net4.7.2写的主程序,需要引用.Net4.5.2写的数据库帮助类,因为数据库帮助类已经引用了对应4.5版本的Mysql.dll或其他的数据库引擎提供的dll,不方便更改帮助类的框架就可以使用这个方法对.Net4.5.2的数据库帮助类进行调用Config配置文件里:标记每个程序集。-->调用时:Assemblyass=
- ASP.NET 使用web.config配置文件的system.webServer/modules标签实现登录验证
chance_66
asp.netC#asp.netc#
前言modules标签允许你添加、删除或配置在IIS中运行的HTTP模块。HTTP模块是处理HTTP请求和响应的组件,它们可以在请求处理管道的不同阶段执行代码。某些system.webServer中的设置可能只适用于IIS的特定模式(如集成模式),而不适用于其他模式(如经典模式)当你需要扩展IIS的功能或自定义HTTP请求/响应处理流程时,可以使用modules标签来添加自定义的HTTP模块请注意
- C# ASP.NET MVC项目内使用ApiController
chance_66
c#
1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。usingSystem.Web.Http;namespacePrivilegeManager{publicclassWebApiConfig{publicstaticvoidRegister(HttpConfigurationconfig){config.MapHttpAttributeRoute
- error pulling image configuration: download failed after attempts=6: dial tcp 59.188.250.54
赛博曹操
BUG题解bugpythondjangopygamevirtualenv
errorpullingimageconfiguration:downloadfailedafterattempts=6:dialtcp59.188.250.54报错如下:解决方案第一种$exportREPO=docker.m.daocloud.io$dockerpull${REPO}/halohub/halo:2.6.12.6.1:Pullingfromhalohub/halod1669123f
- Springboot项目中线程池使用整理
m0_74823715
面试学习路线阿里巴巴springboot后端java
文章目录Springboot项目中线程池使用整理学习目标线程池类型及特点Java基础线程池SpringThreadPoolTaskExecutorThreadPoolTaskExecutorvsThreadPoolExecutor主要区别@Async注解使用AsyncConfigurer接口CompletableFuture线程池实现方式比较1.Spring@Bean方式2.AsyncConfig
- 在nodejs中使用ElasticSearch(一)安装,使用
konglong127
nodejselasticsearch大数据搜索引擎
使用docker安装ElasticSearch和Kibana1)创建相应的data文件夹和子文件夹用来持久化ElasticSearch和kibana数据2)提前创建好elasticsearch配置文件data/elasticsearch/config/elasticsearch.yml文件#========================ElasticsearchConfiguration====
- 如何解析配置文件
啊念着倒嘛干
pythonpythonjson
如何解析配置文件什么是配置文件?在计算机科学领域,配置文件(英语:configurationfile)是一种计算机文件,可以为一些计算机程序配置参数和初始设置。一个项目中,为什么要设置一个配置文件呢?方便修改参数设置和逻辑代码分离(解耦)(高内聚,低耦合)常见的配置文件格式:aaa.inixxx.xmlxxxxx.jsonxxfada.yaml什么是json文本、字符串、有固定的格式,格式长得像p
- 深入解析微服务架构之Spring Cloud
一休哥助手
分布式系统架构微服务springcloud
目录微服务架构简介什么是微服务微服务的优势微服务的挑战SpringCloud概述SpringCloud简介SpringCloud的主要特性SpringCloud的模块划分SpringCloud核心组件详解SpringCloudNetflixSpringCloudConfigSpringCloudGatewaySpringCloudSleuthSpringCloudBus实战案例:构建一个简单的微服
- menuconfig+Kconfig的简单配置
S火星人S
Kconfig笔记
目录1.背景2.管理方案2.1:.h中直接定义2.2:.bat+Cmake2.3:Kconfig2.3.1环境安装2.3.2代码2.3.2.1目录结构2.3.2.2ble目录下的Kconfig2.3.2.3hardware目录下的Kconfig2.3.2.4rtos目录下的Kconfig2.3.2.5根目录2.3.3执行脚本1.背景在实际项目开发中,通常会有需要去使能/关闭一些代码模块或者修改一些
- 内网安装docker、docker-compose和harbor仓库 保姆级教程
passion_flower_
云计算
下图是用到的安装包安装docker1.关闭防火墙firewalld和selinxsystemctlstopfirewalldsed-i'/^SELINUX=/cSELINUX=disabled/'/etc/selinux/config配置systemctl启动dockervim/etc/systemd/system/docker.service[Unit]Description=DockerApp
- 前后端分离项目的验证码实现(前端Vue,后端TP)
今天练肩感觉爆炸
vuethinkphp
1.TP安装依赖composerrequiretopthink/think-captcha=2.0.*2.生成验证码返回给前端//生成验证码publicfunctiongetCaptcha(){$config=[//验证码字符集合'codeSet'=>'0123456789',//验证码字体大小'fontSize'=>30,//字体'fontttf'=>'5.ttf',//验证码位数'length
- 01-网络归划与实施设计应用主、备网络,静态路由和HSRPBGP
浪花世界_langhuashijie
网络http网络协议网络安全tcpdumptcp/ip
主、备网络,静态路由和HSRP,实现了主、备并BGP互接,另外冗余也正常,经测试属于可行并且简洁可靠方案。R0#SHRUNBuildingconfiguration...Currentconfiguration:979bytes!version16.6.4noservicetimestampslogdatetimemsecnoservicetimestampsdebugdatetimemsecno
- python的config模块的使用
Mo-莫林
pythonwindowslinux
config.py#参数options={"port":8080,"list":["good","nice","handsome"]}#配置importconfigif__name__=="__main__":print(config)print(type(config.options))print(config.options)print("list=",config.options.keys(
- 如何高效修改多个节点的 config.ini 文件
纸鸢666
网络linux服务器联盟链区块链
简介在区块链网络中,节点的配置文件(如config.ini)通常定义了节点的运行参数。当你有多个节点时,如果需要修改这些配置文件中的某些设置,手动修改每个节点的配置文件显然是繁琐且易出错的。那么,有没有更简便的方式来完成这一任务呢?答案是肯定的!下面我将介绍几种方法,帮助你高效地修改多个节点的config.ini文件。方法1:使用脚本自动化操作如果你熟悉命令行和脚本语言,可以编写一个简单的脚本来自
- nuxt常用组件库html-validator应用解析
垣宇
vue.js
html-validator主要用于自动验证nuxt服务器呈现的HTML(SSR和SSG),以检测可能导致水合错误的HTML常见问题,有助于减少水合错误,检测常见的可访问性错误。安装npxnuxi@latestmoduleaddhtml-validator配置若自动更新nuxt.config.ts配置文件失败,可手动添加下面代码:nuxt3defineNuxtConfig({modules:['@
- JSR-107与SpringBoot缓存
weixin_39515823
SpringBootspring
文章目录JSR-107与SpringBoot缓存JSR-107JSR-107核心接口JSR-107图示Spring的缓存抽象缓存抽象定义重要接口Spring缓存使用重要概念&缓存注解缓存初体验@Cacheable注解的属性SpEL表达式@Cacheable的运行流程@CachePut&@CacheEvict&@CacheConfig@CachePut@CacheEvict@CacheConfig缓
- 【Spring】配置文件的使用
m0_74823507
面试学习路线阿里巴巴springjava后端
在Spring框架中,application.properties(或application.yml)文件用于配置Spring应用程序的各种属性。我们可以通过多种方式来使用这些配置,包括使用@Value和@ConfigurationProperties注解来绑定配置到Java对象。下面是对不同配置类型的说明,以及如何在代码中使用它们的示例。1.配置变量(单个属性)可以在application.pr
- python+requests+pytest+allure自动化测试框架
测试1998
python软件测试自动化测试单元测试pytest职场和发展测试工具
视频学习:文末有免费的配套视频可观看关注公众号【互联网杂货铺】,回复1,免费获取软件测试全套资料,资料在手,涨薪更快1、核心库requestsrequest请求openpyxlexcel文件操作loggin日志smtplib发送邮件configparserunittest.mockmock服务2、目录结构baseutilstestDatasconftestCasestestReportlogs其他
- Python+requests+pytest+allure自动化测试框架
测试1998
软件测试自动化测试测试工具测试用例pythonpytest职场和发展
点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快1、核心库requestsrequest请求openpyxlexcel文件操作loggin日志smtplib发送邮件configparserunittest.mockmock服务2、目录结构baseutilstestDatasconftestCasestestReportlogs其他2.1basebase_path.py存放绝对路径,do
- Android -- 使用Sharepreference保存List储存失败,原因是包含Bitmap,drawable等类型数据
王的博客
android
1.报错信息如下:classandroid.content.res.ColorStateListdeclaresmultipleJSONfieldsnamedmChangingConfigurations2.Bean类属性如下:dataclassAppInfoBean(valappName:String?,valappIcon:Drawable,valappPackage:String?,vala
- jenkins创建新用户_Jenkins的用户管理
Damong.Liu
jenkins创建新用户
用户管理入口Jenkins首页有一个用户,但是只能从那查看用户列表和信息,管理用户的入口在Jenkins->系统管理->管理用户新建用户在管理用户左侧有一个新增用户,点击后按照表单填写即可用户权限在确定使用用户功能之后,需要在全局安全设置中先做一些配置在Jenkins->系统管理->ConfigureGlobalSecurity中,勾选启用安全上图是一个简单的示例全局权限第一行的用户是超级管理员超
- Vue打包(webpack)缓存
歌歌的前端学习之路
vue.jswebpack前端
解决方法:1、修改vue.config.js文件constTimestamp=newDate().getTime();module.exports=defineConfig({configureWebpack{output:{filename:`[name].${Timestamp}.js`,chunkFilename:`[name].${Timestamp}.js`},},css:{extrac
- Visual Studio Code配置Python开发环境
ai74583
python开发工具json
1.安装Python插件在VScode界面按Crtl+Shift+P或者F1输入extinstall直接安装Python,也就是点击它,然后等待,安装好后会提示你重启2.配置运行Python程序同样的打开命令面板(Crtl+Shift+P或F1),然后输入Tasks:ConfigureTaskRunner(中文输入:任务,然后选择任务:配置任务运行程序),选择Other此时VScode会自动生成.
- 安装数据库首次应用
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 {