在C++的for循环中,for(初始化;条件;更新)的三个参数都是可选的,你可以不写其中的一个、两个,甚至全部三个参数。1.不写初始化如果循环变量已经在循环外部定义并初始化,可以省略for循环中的初始化部分。例子:inti=0;//初始化在外部完成for(;i=5){break;//手动退出循环}cout=5){break;//手动退出循环}cout<
Feign vs Ribbon:微服务调用背后的双雄对决,你站哪一边?
码农技术栈
ribbon微服务springcloud架构springboot
在微服务架构中,服务间的调用就像一场精密的“对话”。而SpringCloud家族中的Ribbon和Feign,正是这场对话的两位“翻译官”。它们看似都能实现服务调用,但背后的工作原理却截然不同。今天我们就用“说人话”的方式,揭开它们的秘密!一、角色定位:一个像“快递员”,一个像“智能管家”Ribbon:低调的负载均衡大师它像一位经验丰富的快递员,专注于如何高效分配任务(请求)。当你用RestTem
VC获取硬盘序列号 网卡 cpuid bios
kiwwi
attributesbyteexception存储加密integer
用api函数读取硬盘的序列号关于盘序列号有两种:硬盘序列号:英文名HardDiskSerialNumber,该号是出厂时生产厂家为区别产品而设置的,是唯一的,是只读的,利用硬盘序列号的加密往往是利用其唯一和只读的特性,大多是针对有序列号的IDEHDD而言,对于没有序列号或SCSIHDD硬盘则无能为力,这也是利用它进行加密的局限性.卷的序列号:英文名VolumeSerialNumber,该号既可指软
华为战略解码-162页 八大章节 精读
智慧化智能化数字化方案
华为学习专栏华为
该文档主要解读了华为战略解码的过程和内容,强调了领导力在战略管理中的重要性,介绍了华为战略管理的七个关键点以及领导力的七个特质。文档详细阐述了华为在战略解码过程中如何利用BLM模型等工具,以及如何从市场洞察、业务设计等方面制定和执行战略。同时,也介绍了华为干部九条素质与领导力专项素质能力的层级划分,强调领导力对华为战略实施的重要性。目录(一)前四章节总结解析...41.战略成长...4
Linux15 数据链路层
辣椒味番茄
Linuxlinux
数据链路层什么是以太网以太网帧格式MAC地址MTU-以太网最大传输单元网络层IP数据包分包(分片)MTU对UDP协议的影响MTU对于TCP协议的影响ARP协议ARP协议的作用ARP协议的工作流程ARP数据报格式什么是以太网“以太网”不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容.例如:规定了网络拓扑结构,访问控制方式,传输速率等例如以太网中的网线必须使用双
基于 Python 的漏洞扫描工具的设计与实现
计算机毕业设计指导
python开发语言信息安全
引言随着信息技术的快速发展,网络安全问题成为了各类组织和个人面临的重要挑战之一。漏洞是网络安全中的一个重要问题,黑客和恶意攻击者往往通过利用这些漏洞来侵入系统,窃取敏感信息或进行其他恶意行为。因此,及时发现和修复漏洞是确保网络安全的重要手段。本项目旨在设计和实现一个基于Python的漏洞扫描工具,帮助用户快速发现系统中的潜在漏洞,并提供修复建议。该工具将包括对Web应用程序、操作系统、服务等的漏洞
HTML AI 编程助手
wjs2024
开发语言
HTMLAI编程助手引言随着人工智能技术的飞速发展,编程领域也迎来了新的变革。HTML,作为网页制作的基础语言,与AI技术的结合,为开发者带来了前所未有的便利。本文将探讨HTMLAI编程助手的功能、应用场景以及如何利用它提高编程效率。HTMLAI编程助手概述HTMLAI编程助手是一种基于人工智能技术的辅助工具,旨在帮助开发者快速、高效地完成HTML代码编写。通过学习大量的HTML代码,AI编程助手
【花雕学编程】Arduino FOC 之四连杆机构轮腿机器人的复杂路径规划
驴友花雕
机器人嵌入式硬件单片机c++Arduino动手做四连杆机构轮腿机器人的复杂路径规划
Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用ArduinoIDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Ardui
Tomcat 8.0.12 资源下载
洪岭瑶
Tomcat8.0.12资源下载【下载地址】Tomcat8.0.12资源下载本仓库提供Tomcat8.0.12版本的资源文件下载。Tomcat是一个开源的JavaServlet容器,广泛用于部署和运行JavaWeb应用程序项目地址:https://gitcode.com/open-source-toolkit/dde6e简介本仓库提供Tomcat8.0.12版本的资源文件下载。Tomcat是一个开
分析http请求数据常见异常
good_good_xiu
项目备忘录BufferReaderhttp请求异常
1.ConnectException连接超时访问该地址超时,无法连接该服务器。这种情况直接抓取该异常提醒即可。2.SocketTimeoutException读取数据超时注:可以用过URL类.getxxx方法获取url的主机名端口号等等(newURL(url))能连接服务器,但是与服务器交互时间超过请求最大连接时长。这种情况需要对目标主机进行ping操作确定网络速度。(kB/s)pingip-l1
Grok-3和DeepSeek-R1,谁更胜一筹?
xiaocang668888
人工智能DeepSeek
关于Grok-3(xAI研发)与DeepSeek-R1(深度求索公司产品)的技术竞合,需从核心定位、场景穿透力和战略生态三重维度展开深度解构。两大模型代表两种技术演化路径的终极对决,其胜负取决于问题域的边界定义。一、基础能力的对称平衡能力维度Grok-3DeepSeek-R1参数量级混合专家模型(MoE)架构,总参量4.2T,活跃参数860B稠密神经架构,320B全激活参数知识保鲜动态知识注入(每
利用Python实现企业微信发送文件消息
林_胖
python企业微信自动化文件OA
最近领导希望做一个小的招标信息爬取系统,每日以邮件以及企业微信的方式进行推送。所以记录一下如何使用Python实现企业微信发送文件。第一步:登录企业微信后台,需要用有管理员权限的微信进行扫码登录。第二步:获取AgentId和Secret,获取路径:应用管理-创建应用,创建应用后即可看到。第三步:确认需要接收信息的userid,获取路径:通讯录-选择需要发送的人员-账号。第四步:获取公司ID,获取路
如何配置虚拟机的IP上网
嘟嘟嘟嘟嘟嘟嘟.
虚拟机
要配置虚拟机的IP地址以便上网,你可以按照以下步骤操作:打开虚拟机软件,确保虚拟机的网络设置为“桥接模式”或“NAT模式”,这样虚拟机可以与物理网络连接。在虚拟机操作系统中,打开网络设置界面,一般在控制面板或系统设置中可以找到网络设置选项。在网络设置中,选择手动配置IP地址(静态IP)或自动获取IP地址(动态IP)的方式,具体取决于你的网络环境和需求。如果选择手动配置IP地址,输入需要的IP地址、
Http、tcp、https、socket、tomcat、长短连接等总结回顾
SJLoveIT
httptcp/iphttps
(1)关于http、tcp的长短连接问题tcp是没有所谓长连接的概念的。tcp经过三次握手就已经建立了一个连接,这个所谓建立了一个连接就是两边操作系统层面都已经建立了socket,都准备好了相应的缓冲区等。socket是啥呢?socket其实就是操作系统提供tcp连接的接口。比如tcp的可能有第一次握手的方法,是C语言写的,比如就叫syn方法,对应第一次握手,也就是客户端发一个syn位置1的tcp
计算机网络基础:网络标准相关知识介绍
IT技术分享社区
电脑技巧数据库软考网络大数据人工智能java编程语言
1、常见的制定网络标准的机构国际标准化组织、国际电信联盟、电子工业协会、电气和电子工程协会、因特网活动委员会2、常见的网络标准2.1电信标准国际电信联盟(ITU)1947年成为联合国的一个组织,包括ITU-R、ITU-T、ITU-D组成。ITU-R:无线通信部门。主要工作是确保无线电频率的卫星轨道被所有国家平等、有效和经济地利用。ITU-T:电信标准部门。下设很多研究小组主要是网络管理、网络维护、
VMware各个软件的作用
The god of big data
大Big数据Data教程神器?三叉戟?云计算网络
VMware作为全球领先的虚拟化与云计算解决方案提供商,其软件产品覆盖了从桌面级虚拟化到企业级云平台的全场景需求。以下结合其核心产品体系,详细解析各软件的功能定位与业务价值:一、基础虚拟化平台VMwarevSphere作为企业级服务器虚拟化的核心引擎,vSphere通过ESXi虚拟化内核实现对物理服务器的资源切割,支持在一台物理主机上同时运行数百个虚拟机(VM)。其核心功能包括:vMotion:实
git 多分支管理
大丈夫在世当日食一鲲
GITgit
Git多分支管理是团队协作和复杂项目开发的核心实践,通过合理利用分支机制可以实现并行开发、版本控制和代码稳定性:一、分支管理基础概念与操作分支的创建与切换创建分支:使用gitbranch基于当前提交创建新分支,例如gitbranchfeature/user-auth。快速切换:通过gitcheckout或gitswitch切换上下文,建议在开发新功能前创建独立分支以避免污染主分支。分支命名规范:推
LeetCode - #219 存在重复元素 II
网罗开发
Swiftvue.jsleetcode算法
网罗开发(小红书、快手、视频号同名) 大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、HarmonyOS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。图书作者:《ESP32-C3物联网工程开发实战》图书作者:《SwiftUI入门,进阶与实战》超级个体:CO
shell(三剑客)
passion_flower_
自动化运维
正则表达式基本正则表达式元字符^行首定位符$行尾定位符.匹配任意单个字符(单个)*匹配前导符0到多次*和左侧的字符配合左侧字符可以出现0次到多次例如:grep"abc*"/tmp/123结果显示的是ababcabcd…….*任意多字符#会出现所有的内容[]匹配制定范围内的一个字符[-]匹配制定范围内的字符,连续的范围比如:grep"[0-9]"文件[^]匹配不在指定组内的字符取反比如:[^A]bc
Grafana服务安装并启动
风中凌乱
监控服务prometheusgrafana
Grafana服务安装并启动1、介绍2、下载Grafana3、解压缩文件4、启动Grafana服务5、增加数据源,填写Prometheus访问地址6、增加图表1、介绍Grafana是一个开源的可视化系统监控和警报工具包。2、下载Grafana介绍:Grafana是一个开源的可视化系统监控和警报工具包。下载地址:https://mirrors.huaweicloud.com/grafana/下载gr
FlutterToast:使用Flutter原生API实现的Toast功能
齐妤茜
FlutterToast:使用Flutter原生API实现的Toast功能FlutterToastFlutterToast使用Flutter原生API实现的Toast功能项目地址:https://gitcode.com/gh_mirrors/flu/FlutterToast1.项目基础介绍FlutterToast是一个基于Flutter的开源项目,主要使用Dart语言开发。该项目旨在为Flutte
FlutterToast教程:轻松集成Flutter中的Toast功能
庞燃金Alma
FlutterToast教程:轻松集成Flutter中的Toast功能项目地址:https://gitcode.com/gh_mirrors/fl/FlutterToast项目介绍FlutterToast是一个专为Flutter平台设计的简单易用的Toast库,它允许开发者只需一行代码即可创建并显示消息提示。该库支持多种自定义选项,包括位置、持续时间、颜色和字体大小等,确保用户界面提示既便捷又符合
Todoist 克隆项目指南:从入门到实战
史艾岭
Todoist克隆项目指南:从入门到实战todo:white_check_mark:Commad-LineTaskmanagementwithstorageonyourGitHub:fire:项目地址:https://gitcode.com/gh_mirrors/todo10/todo项目介绍Todoist是一个广受好评的任务管理应用程序,帮助个人和团队组织工作和生活。这个开源项目https://
AI在农业中的应用:精准农业的新时代
AI大模型应用之禅
DeepSeekR1&AI大模型与大数据计算科学神经计算深度学习神经网络大数据人工智能大型语言模型AIAGILLMJavaPython架构设计AgentRPA
AI,农业,精准农业,机器学习,深度学习,计算机视觉,农业机器人1.背景介绍农业是人类文明的基石,也是全球经济的重要支柱。然而,随着人口增长和资源短缺,传统农业面临着诸多挑战,例如低效率、资源浪费、环境污染和气候变化的影响。为了应对这些挑战,精准农业应运而生。精准农业是指利用现代信息技术和数据分析手段,对农业生产进行精细化管理,提高资源利用效率、产量和产品质量,同时减少环境污染。人工智能(AI)作
安装数据库首次应用
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 {