- Python笔记6----数组
weixin_34293911
python数据结构与算法c/c++
1、Python中的数组形式:用list和tuple等数据结构表示数组一维数组:list=[1,2,3,4]二维数组:list=[[1,2,3],[4,5,6],[7,8,9]]用array模块:array模块需要加载,而且运用的较少通过array函数创建数组(数组中的元素可以不是同一种类型),array.array('B',range(5))>>array('B',[1,2,3,4,5])提供a
- 【代码随想录python笔记整理】第一课 · A+B 问题1
南星六月雪
Python刷题笔记笔记python
前言:本笔记仅仅只是对内容的整理和自行消化,并不是完整内容,如有侵权,联系立删。一、数据类型Python中有一些常见数据类型,包括数字类型,布尔类型,字符串类型。其中,数字类型又分为整数类型和浮点数类型。整数类型-1、0、1浮点数类型3.14布尔类型True=1;False=0字符串类型'Hello'、"Helllo"二、输入输出1、输入:输入采用input()函数,再将变量与其建立联系。在inp
- 【Python笔记】向量:@classmethod与 @staticmethod。零基础
万物皆可.C
Python笔记python
类成员比较@classmethod与@staticmethod共同点:两个都是装饰器,装饰的成员函数可以通过类名.方法名(…)来调用区别:最显著的特点是classmethod需要传递一个参数cls,而staticmethod不需要。因此可以访问、修改类的属性,类的方法,实例化对象等,避免硬编码;而staticmethod不行,classmethod可以判断出自己是通过基类被调用,还是通过某个子类被
- python学习笔记08_赋值运算、逻辑运算、表达式、短路原则
flamingocc
python笔记081.赋值运算符num+=1等价于num=num+1num-=1等价于num=num-1num*=1等价于num=num*1num/=1等价于num=num/1num//2等价于num=num//2num%=2等价于num/2的余数num**2等价于num=num*num2.逻辑运算符逻辑运算符包含:not、and、or2.1and的用法:(且、并且)写法:条件1and条件2eg
- python实战之去除视频水印&;字幕_python 去除视频水印
2401_83641634
程序员python音视频开发语言
importosimportsysimportcv2importnumpyfrommoviepyimporteditorVIDEO_PATH=‘video’OUTPUT_PATH=‘output’TEMP_VIDEO=‘temp.mp4’classWatermarkRemover():def__init__(self,threshold:int,kernel_size:int):self.thre
- 有没有大佬帮孩子看看问题出在哪啊啊啊啊
MinerTob
pythonpygame
我写了一个python音乐播放器,在实现进度条功能时为什么拖动进度条后,进度条后会退回原来的位置,而不是在拖动到的位置继续加载啊求个大佬解答啊(qmq)这是我写的代码(有注释)importosimportsysimporttkinterastkfromtkinterimportfiledialog,messageboximportpygameimportjsonfrommoviepy.editor
- python 把一个视频复制3次
waterHBO
python音视频开发语言
1.先看效果输入输出2.代码第一种方法moviepy代码来源gpt4ofrommoviepy.editorimportVideoFileClip,clips_array#加载视频video=VideoFileClip("a22.mp4")#复制视频三次video_copied=clips_array([[video,video,video]])#输出最终的视频video_copied.write_
- python 利用视频制作表情包
qq_492448446
Pythonpython开发语言
要将视频转换成微信表情包,你可以使用Python中的moviepy库来处理视频文件,并将其转换为GIF格式,因为GIF格式适合作为表情包使用。以下是一个基本的步骤指南,帮助你将视频转换成微信表情包:1.安装必要的库:首先,你需要安装moviepy库,这是一个强大的Python视频处理库,可以用来编辑视频文件。你可以使用pip命令安装moviepy:pipinstallmoviepy2.加载视
- python根据时间段拆分视频并且合并(高效快速)
qq_492448446
Pythonpythonwindows开发语言
#coding=utf-8__author__='Administrator'importtimefrommoviepy.editorimportVideoFileClip,concatenate_videoclips"""defprint_time():now=time.time()r=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime(now))pr
- 提取视频中的音频
萌新小强
frommoviepy.editorimport*video=VideoFileClip(r'E:\z\EP001.mp4')audio=video.audioaudio.write_audiofile(r'E:\z\my_new_video.mp3')
- 2.25python笔记 高阶编程
13351
@[TOC](2.25学堂在线python学习笔记高阶编程)#高阶编程1.利用二分法查找一个字符是否在某个字符串当中基线条件:当s=''时,返回False当len(s)=1且s==char时返回True当len(s)>1且s[mid]>char时,返回isIn(char,s[:mid])否则当s[mid]1:ifs[mid]>char:print(s)returnisIn(char,s[:mid]
- Python笔记五之正则表达式
后端python正则表达式
本文首发于公众号:Hunter后端原文链接:Python笔记五之正则表达式这一篇笔记介绍在Python里使用正则表达式。正则表达式,RegularExpression,可用于在一个目标字符串里对于指定模式的字符进行查找、替换、分割等操作。比如,判断某个字符串里是否都是数字,或者是否包含指定字符串,又或者更直接的例子是判断电话号码或者邮箱是否合法等。这一篇笔记里,我们将先介绍一个正则表达式的函数,并
- Python实现视频转音频、音频转文本的最佳方法
AICodeThunder
问答教程python音视频开发语言
文章目录Python实现视频转音频和音频转文字视频转音频步骤1:导入moviepy库步骤2:选择视频文件步骤3:创建VideoFileClip对象步骤4:提取音频步骤5:保存音频文件音频转文字步骤1:导入SpeechRecognition库步骤2:选择音频文件步骤3:创建Recognizer对象步骤4:读取音频文件步骤5:将音频转换为文字步骤6:打印转换结果完整代码Python实现视频转音频和音频
- moviepy,一个超酷的 Python 视频处理库!
漫走云雾
python音视频开发语言
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。前言大家好,今天为大家分享一个超酷的Python库-moviepy。Github地址:https://github.com/Zulko/moviepy在今天的数字时代,视频内容变得越来越流行,从社交媒体到在线教育。PythonMoviePy是一个强大的Python库,专门用于
- python笔记——jieba库
Toby不写代码
python学习python
文章目录一.概述二.jieba库使用三.实例一.概述1.jieba库概述jieba库是一个重要的第三方中文分词函数库,不是安装包自带的,需要通过pip指令安装pip3installjieba二.jieba库使用1.库函数jieba.cut(s)——精确模式,返回一个可迭代数据类型jieba.cut(s,cut_all=True)——全模式,输出文本s中可能的单词jieba.cut_for_sear
- [韩顺平]python笔记
超级用户 root
Pythonpython笔记开发语言
AI工程师、运维工程师python排名逐年上升,为什么?python对大数据分析、人工智能中关键的机器学习、深度学习都提供有力的支持Python支持最庞大的代码库,功能超强数据分析:numpy/pandas/os机器学习:tensorflow/scikit-learn/theano爬虫:urllib/reques/bs4/scrapy网页开发:Django/falsk/web运维:saltstac
- 一文教会你,Python数据如何存储
学Python的小瑜
转载自志斌的Python笔记3月28日今天呢,小瑜专门写一篇关于数据存储的文章,让大家清楚的了解数据存储的方式,以及在什么情况下,使用什么存储方式。本文将分三个方面来介绍数据存储:1.文件存储、2.关系型数据库存储、3.非关系型数据库存储。废话少说,让我们直接来看正文吧!一、文件存储1.1TXT文本将数据存储到TXT文本的操作十分简单,在之前文章已经简单介绍过,而且TXT文本基本兼容任何平台,但是
- Python笔记——绘制雷达图
没昔
代码#雷达图frompyechartsimportoptionsasoptsfrompyecharts.chartsimportPage,Radar#两组数据的对比v1=[[4300,10000,28000,35000,50000,19000]]v2=[[5000,14000,28000,31000,42000,21000]]#返回Radar图表对象数据处理完整之后通过雷达对象进行转换defrad
- Delphi 程序直接调用 Python 的函数
pcplayer
python开发语言
在本系列的第一篇博客文章:Delphi程序员初学Python笔记-CSDN博客在这篇文章里面,我提到,一个Python的函数,我用Delphi无法直接调用它,所以我对它做了一个Python的包装。原因是,那是我第一次学习使用Python4Delphi这个控件。那时候要执行Python代码,我只会使用PythonEngine1.ExecStrings(Python代码)这样的方式。这样做,就是在De
- python小结
张叁疯_
本周整理了python学习笔记复习旧的,顺便整理新的,笔记分享在了有道云链接如下阿龙的python笔记都是基础知识,希望在今后能成体系,根据案例学python
- 视频合并python
zisuina_2
python
不同尺寸,不同个数的视频都可以合并左右拼接frommoviepy.editorimport*clips=[VideoFileClip(r"//A-0000-raw-converted.avi"),VideoFileClip(r"/bird_A-0000-raw-converted.avi")]video=clips_array([clips])video.write_videofile(r'/20
- 视频转语音,语音转文字
Only_one_road
在处理一个会议文稿时,为了提升效率,将视频会议相关的内容转化为文字,进而进一步进行修改。采用了如下的demo进行处理。#-*-coding:utf-8-*-importbase64importhashlibimporthmacimportjsonimportosimporttimeimportreimportrequestsfrommoviepy.editorimportAudioFileClip
- 大学python笔记整理_python 笔记整理
余虹的眼
大学python笔记整理
Pythonisdigit()方法检测字符串是否只由数字组成。Pythonint()函数用于将一个字符串或数字转换为整型。判断字符、列表、元组等的长度或项目个数:Pythonlen()。enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。(把下标取出来)python中单引号和双引号使用完全相同。文件操作:内
- Python笔记(十)
Lzehui
python笔记
文件编码概念编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑编码有许多种,我们最常用的是UTF—8编码文件的读取对文件进行操作的基本步骤,大概可以分为三步1、打开文件2、读写文件3、关闭文件注意:可以只打开和关闭文件,不进行任何读写open()打开函数在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下open(name,mode,encoding
- Python笔记(八)
Lzehui
python开发语言
数据容器:dict(字典、映射)字典的定义字典的定义,同样使用{},不过存储的元素是一个个的:键值对,如下语法: #定义字典字面量 {key:value,key:value,……,key:value} #定义字典字面量 mt_dict={key:value,key:value,……,key:value} #定义空字典 my_dict={} #空字典定义方式1 my_dict={} #空字典
- Python笔记(三)
Lzehui
python笔记数据库
while循环的基础应用语法:while条件:条件满足时,做的事情 i=0 whilei<100: print("循环100次") i+=11.while的条件需要得到布尔类型,True表示继续循环,False表示结束循环2.需要设置循环终止的条件,如i+=1配合i<100,就能保证100次后停止,否则将无限循环3.空格缩进,冒号和if判断一样,都需要设置while循环的嵌套使用基础语法:wh
- Python笔记(五)
Lzehui
python笔记
数据容器入门python中的数据容器:一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。根据容器特点的不同,如:是否支持重复元素是否可以修改是否有序,等分为5类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)数据容器:list(列表)列表的定义基本语法 #字面量 [元素1,元素2
- Python笔记(七)
Lzehui
python笔记
集合的定义和操作集合中元素不能重复,且是无序的,区别于列表,元组,字符串基本语法: #定义集合字面量 {元素,元素,……,元素} #定义集合变量 变量名称={元素,元素,……,元素} #定义空集合 变量名称=set()和列表、元组、字符串等定义基本相同;列表使用:[]元组使用:()字符串使用:""集合使用:{}集合常规操作:因为集合是无序的,所以集合不支持:下标索引访问但集合和列表一样,是允许修改
- Python笔记(一)
Lzehui
python
字面量python中常用的有6种值(数据)的类型类型描述说明数字(Number)支持:整数(int)浮点数(float)复数(complex)布尔(bool)整数(int),如:10、-10浮点数(float),如:13.14、-13.14复数(complex),如:4+3j,以j结尾表示复数布尔(bool)表达现实生活中的逻辑,即真和假,True表示真,False表示假。True本质上是一个数字
- Python笔记(九)
Lzehui
python前端
函数多返回值语法: deftest_return(): return1,2 x,y=test_return() print(x) #结果1 pirnt(y) #结果2按照返回值的顺序,写对应顺序的多个变量接收即可变量之间用逗号隔开支持不同类型的数据return函数的多种参数使用形式函数参数种类使用方式上的不同,函数有4中常见参数使用方式:位置参数关键字参数缺省参数不定长参数位置参数:调用函数
- 安装数据库首次应用
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 {