- C# ASP.NET MVC项目内使用ApiController
chance_66
c#
1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。usingSystem.Web.Http;namespacePrivilegeManager{publicclassWebApiConfig{publicstaticvoidRegister(HttpConfigurationconfig){config.MapHttpAttributeRoute
- FATFS学习(2.3):ff.h
S火星人S
嵌入式:第三方组件移植(fs)笔记学习mcu
一:/*Fileinformationstructure(FILINFO)*/typedefstruct{FSIZE_tfsize;/*Filesize*/WORDfdate;/*Modifieddate*/WORDftime;/*Modifiedtime*/BYTEfattrib;/*Fileattribute*/#ifFF_USE_LFNTCHARaltname[FF_SFN_BUF+1];/
- 对接Amazon SQS 队列相关接口简要说明
MartinGQ
消息队列#AmazonSQS消息队列
AmazonSQS队列相关接口因项目功能需求,对接了Amazon的SQS消息队列,封装了常用的接口,本文是对封装后接口的简要说明。1.创建队列2个创建标准队列的接口,和2个创建FIFO(firstinfirstout:先进先出)队列的接口。队列的很多功能需要通过属性进行配置,可以在创建队列时通过参数attributes进行配置,也可以在创建队列以后单独配置,后面会详细介绍设置队列属性的接口,以及对
- Markdown 开源项目指南:NimbusKit markdown
何灿前Tristan
Markdown开源项目指南:NimbusKitmarkdownmarkdownAMarkdownNSAttributedStringparser.项目地址:https://gitcode.com/gh_mirrors/markdown7/markdown一、项目目录结构及介绍└──NimbusKit-markdown├──LICENSE#许可证文件,描述了软件使用的权限与限制├──README.
- spring boot 连接mysql报错。配置数据源失败:未指定“url”属性,无法配置嵌入的数据源
飘零未归人
java#javadatabase
报错信息:FailedtoconfigureaDataSource:'url'attributeisnotspecifiedandnoembeddeddatasourcecouldbeconfigured.Reason:FailedtodetermineasuitabledriverclassAction:Considerthefollowing:Ifyouwantanembeddeddataba
- Spring Boot 排除自动配置
m0_74824954
面试学习路线阿里巴巴springbootjavamybatis
SpringBoot排除自动配置SpringBoot自动配置非常强大,有时需要排除/禁用SpringBoot某些类的自动化配置。***************************APPLICATIONFAILEDTOSTART***************************Description:FailedtoconfigureaDataSource:'url'attributeisn
- staruml java类图_使用staruml绘制类图
weixin_39999025
starumljava类图
抽象类的表示选中需要设置的类,勾选Properties->General->IsAbstract进行设置,设置完成后,类名会变成斜体抽象类的表示接口的表示在Properties->General中将Stereotype设置为interface接口的表示新增类的属性选中需要新增属性的类,点击Properties->General->Attributes的右侧按钮在Properties->Genera
- module object has no attribute WebSocketApp
灿灿的金
服务器python
安装好websocket之后,在使用websocket.WebSocketApp()函数的时候报错原因是没有这个函数是少了包,执行以下操作即可解决pipinstallwebsocket-client
- 解决多线程环境下 Feign 调用无法获取请求头的问题
SharSteep
springspringcloud
问题背景在Java开发中,我们使用线程池进行异步调用Feign接口时,遇到了一个问题:Feign接口无法正常调用。经过排查,发现问题的根源在于我们根据HTTP请求头中的一个参数来决定调用哪个服务(service1或service2)。然而,当使用多线程调用时,无法获取当前HTTP请求的ServletRequestAttributes,从而导致无法获取请求头信息,进而无法确定应该调用哪个服务。问题分
- 如何动态向HTML中插入SVG元素(包括Line,path,marker..等)
junzhen_chen
前端HTMLSVGhtmlsvg
1.使用dodument对象创建一个SVG元素marker,为元素引入svg的命名空间(必需引入命名空间,不然浏览器将此元素当做普通html标签插入文档流)varmarker=document.createElementNS("http://www.w3.org/2000/svg","marker");2.使用标签元素对象的setAttribute函数为元素的属性设值marker.setAttri
- python object对象
weixin_34306676
pythonjavascriptViewUI
动态语言的对象属性既然都是动态语言,自然python和熟知的JavaScript很像,建一个空对象用来存放所有的数据,看看js:vardata={};data.name='CooMark';data.age=30;但是在python中这样却不行,说好的动态属性呢?data=object()data.name='CooMark'#AttributeError:'object'objecthasnoa
- AttributeError: module ‘matplotlib.cm‘ has no attribute ‘register_cm‘
tongji_transport
matplotlibpython
最近项目需要,在画热力图,需要用到matplotlib和seaborn两个包,但是在importseabornassns的时候一直报错AttributeError:module'matplotlib.cm'hasnoattribute'register_cm'。换了好几个不同版本的matplotlib和seaborn的搭配,还是不行,最后详细看了下seaborn包中的cm.py文件,直接说结果:把
- Rapidly Changing Dimension (RCD) in Data Warehouse 杂项维度
胖胖胖胖胖虎
数据库
RapidlyChangingDimension(RCD)inDataWarehouseAdimensionisafastchangingorrapidlychangingdimensionifoneormoreofitsattributesinthetablechangesveryfastandinmanyrows.Handlingrapidlychangingdimensionindatawa
- 使用EntityGraph解决JPA下N+1问题
工程师小A
JAVA使用EntityGraphJPA下N+1问题
JPA解决N+1问题(指查询对象A,结果把A中的子对象B、C等也查询出来),我们可以使用EntityGraph。@NamedEntityGraph(name="aWithBWithC",attributeNodes={@NamedAttributeNode(value="bs",subgraph="bWithC"),@NamedAttributeNode("c"),},subgraphs={@Na
- 【Spring】学习笔记3——Spring常用注解详解
白衣染霜陈
——【Spring】SpringSpring注解SpringAOPIOC
你只管努力,——剩下的交给时光。常用的spring注解有如下几种:标红为常用的几种,建议深刻理解使用最好动手敲一敲@Controller@Service@Autowired@RequestMapping@RequestParam@ModelAttribute@Cacheable@CacheFlush@Resource@PostConstruct@PreDestroy@Repository@Comp
- 如何确保数据结构的缓存行对齐?
数据库
确保数据结构的缓存行对齐是优化性能的重要手段,尤其是在高性能计算和多线程环境中。以下是一些确保缓存行对齐的方法和技巧:编译器指令大多数现代编译器提供了指令或属性,用于指定数据结构的对齐方式。这些指令可以显式地要求编译器将数据结构对齐到指定的边界(通常是64字节)。GCC/Clang在GCC和Clang中,可以使用__attribute__((aligned(N)))来指定数据结构的对齐方式,其中N
- java 面向对象编程 (OOP)之 类的概念
冰糖心书房
Java开发java开发语言
一、类的定义(ClassDefinition)在Java中,类是创建对象的模板或蓝图。它定义了一类对象共有的属性(状态)和行为(方法)。类是一种抽象的数据类型,它封装了数据和操作数据的方法。1.类的语法结构:[修饰符]class类名[extends父类名][implements接口名列表]{//成员变量(Fields/Attributes)-描述对象的状态[修饰符]数据类型变量名[=初始值];//
- AI人工智能常见的专业术语
奇华智能
人工智能大模型ChatGPTLLMAI
模型(model):计算机层面的认知学习算法(learningalgorithm),从数据中产生模型的方法数据集(dataset):一组记录的集合示例(instance):对于某个对象的描述样本(sample):也叫示例属性(attribute):对象的某方面表现或特征特征(feature):同属性属性值(attributevalue):属性上的取值属性空间(attributespace):属性张
- HTML视口动画
鲨鱼辣椒️面
html前端
animista.jsconstgetParamet={getAnimistaClass(element){returnelement.getAttribute("animista-class");},getIntervalTime(element){returnelement.getAttribute("interval-time")?Number(element.getAttribute("i
- python array_python之模块array
weixin_39955953
pythonarray
>>>importarray#定义了一种序列数据结构>>>help(array)#创建数组,相当于初始化一个数组,如:d={},k=[]等等array(typecode[,initializer])--createanewarray#a=array.array('c'),决定着下面操作的是字符,并是单个字符#a=array.array('i'),决定着下面操作的是整数|Attributes:||t
- 【AI大数据】数据中台的数据分析与挖掘:从数据到业务的决策
AI天才研究院
DeepSeekR1&大数据AI人工智能大模型自然语言处理人工智能语言模型编程实践开发语言架构设计
文章目录1.前言2.基本概念术语说明2.1数据模型及其实体关系实体(Entity)属性(Attribute)实体关系(EntityRelationships)2.2数据仓库2.3分析引擎2.4噪声数据2.5数据湖2.6数据总线2.7数据仓库模型3.核心算法原理和具体操作步骤以及数学公式讲解3.1数据挖掘技术概览(1)数据预处理(2)数据探查(3)数据清洗(4)数据转换(5)数据挖掘(6)知识发现(
- C# 中的一个特性(Attribute)[ThreadStatic]
CoderIsArt
C#c#
[ThreadStatic]是C#中的一个特性(Attribute),用于指示静态字段的值在每个线程中是唯一的。这意味着每个访问该字段的线程都有自己独立的副本,从而避免了线程之间的干扰。关键点:线程特定存储:每个线程都有自己独立的[ThreadStatic]字段实例。静态字段要求:该特性只能应用于静态字段。初始化:在每个线程中,字段会被初始化为默认值(如null、0、false),除非显式设置。示
- FATFS学习(2.2):ffconf.h
S火星人S
嵌入式:第三方组件移植(fs)学习
一:/*ObjectIDandallocationinformation(FFOBJID)*/typedefstruct{FATFS*fs;/*Pointertothehostingvolumeofthisobject*/WORDid;/*Hostingvolume'smountID*/BYTEattr;/*Objectattribute*/BYTEstat;/*Objectchainstatus
- 【数据挖掘】ARFF格式与数据收集
布鲁惠比寿
数据挖掘数据挖掘人工智能
【数据挖掘】ARFF格式与数据收集三级目录1.ARFF格式与数据收集2.稀疏数据3.属性类型4.缺失值与不正确的值5.了解数据6.知识表达7.聚类机器学习算法训练数据挖掘分析数据共享与交换三级目录1.ARFF格式与数据收集ARFF(Attribute-RelationFileFormat)是一种用于存储数据集的文本文件格式,常用于机器学习和数据挖掘领域。它可以表示结构化数据,包括属性定义、关系信息
- Python+Playwright常用元素定位方法
HAMYHF
python功能测试
CSSselector选择器在CSS中,定位元素主要通过选择器完成,以下是几种常见的CSS选择器定位方法:标签选择器(element):直接使用HTML元素名称来定位,例如p会选择所有段落元素。属性选择器(attribute):选择所有具有指定属性的元素,无论该属性的值是什么。例如,[title]会选择所有包含title属性的元素。选择具有指定属性,并且该属性值完全等于给定值的元素。例如,[typ
- C#的序列化[Serializable()]
CoderIsArt
C#c#开发语言
[Serializable]是.NET框架中的一个特性(Attribute),用于标记一个类、结构体、枚举或委托可以被序列化。序列化是将对象的状态转换为可以存储或传输的格式(如二进制、XML或JSON)的过程,以便在需要时可以重新创建该对象。主要用途:持久化存储:将对象的状态保存到文件或数据库中,以便后续恢复。跨进程或跨机器传输:在分布式系统中,将对象通过网络传输到其他进程或机器。深拷贝对象:通过
- XmlRootAttribute与XmlTypeAttribute
weixin_33709609
c#数据库
在使用xml进行对象与字符串序列化与反序列化时,遇到如下问题:代码[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd","2.0.50727.1432")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.Comp
- XML Schema anyAttribute 元素详解
froginwe11
开发语言
XMLSchemaanyAttribute元素详解引言XML(可扩展标记语言)是一种广泛使用的标记语言,用于存储和传输数据。XMLSchema是一种用于定义XML文档结构的语言,它描述了XML文档的结构、数据类型以及约束条件。在XMLSchema中,anyAttribute元素是一个非常有用的特性,它允许在XML元素中包含任意属性。本文将详细介绍anyAttribute元素的用法、特性和注意事项。
- torch环境冲突:AttributeError: module ‘torch.library‘ has no attribute ‘register_fake‘
Ven%
深度学习速通系列深度学习基础动手Ubuntu深度学习机器学习pytorch
如果torch版本冲突问题复杂,可以尝试清理环境并重新安装所有依赖项:pipuninstalltorchtorchaudiotorchvisionpipinstalltorch==2.3.1torchaudio==2.3.1torchvision==0.18.1-fhttps://mirrors.tuna.tsinghua.edu.cn/pytorch-wheels/torch_stable.ht
- Bug处理之执行自己编写代码中出现的AttributeError: ‘XXX’ object has no attribute’xxx’
NormanG
量化编程基础
操作系统Windows10.0;PythonIDE:Pycharm2018.02Python版本:python3.6(anaconda平台)自己编写脚本搭建股票数据库问题描述:自己编写python脚本解决一些数据库搭建过程中的繁琐过程,方便以后重复调用;编写的类在导入应用时报错AttributeError:‘XXX’objecthasnoattribute’xxx’,之前未出现过,因为是重新修改代
- 关于旗正规则引擎中的MD5加密问题
何必如此
jspMD5规则加密
一般情况下,为了防止个人隐私的泄露,我们都会对用户登录密码进行加密,使数据库相应字段保存的是加密后的字符串,而非原始密码。
在旗正规则引擎中,通过外部调用,可以实现MD5的加密,具体步骤如下:
1.在对象库中选择外部调用,选择“com.flagleader.util.MD5”,在子选项中选择“com.flagleader.util.MD5.getMD5ofStr({arg1})”;
2.在规
- 【Spark101】Scala Promise/Future在Spark中的应用
bit1129
Promise
Promise和Future是Scala用于异步调用并实现结果汇集的并发原语,Scala的Future同JUC里面的Future接口含义相同,Promise理解起来就有些绕。等有时间了再仔细的研究下Promise和Future的语义以及应用场景,具体参见Scala在线文档:http://docs.scala-lang.org/sips/completed/futures-promises.html
- spark sql 访问hive数据的配置详解
daizj
spark sqlhivethriftserver
spark sql 能够通过thriftserver 访问hive数据,默认spark编译的版本是不支持访问hive,因为hive依赖比较多,因此打的包中不包含hive和thriftserver,因此需要自己下载源码进行编译,将hive,thriftserver打包进去才能够访问,详细配置步骤如下:
1、下载源码
2、下载Maven,并配置
此配置简单,就略过
- HTTP 协议通信
周凡杨
javahttpclienthttp通信
一:简介
HTTPCLIENT,通过JAVA基于HTTP协议进行点与点间的通信!
二: 代码举例
测试类:
import java
- java unix时间戳转换
g21121
java
把java时间戳转换成unix时间戳:
Timestamp appointTime=Timestamp.valueOf(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:m
- web报表工具FineReport常用函数的用法总结(报表函数)
老A不折腾
web报表finereport总结
说明:本次总结中,凡是以tableName或viewName作为参数因子的。函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序。
CLASS
CLASS(object):返回object对象的所属的类。
CNMONEY
CNMONEY(number,unit)返回人民币大写。
number:需要转换的数值型的数。
unit:单位,
- java jni调用c++ 代码 报错
墙头上一根草
javaC++jni
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000777c3290, pid=5632, tid=6656
#
# JRE version: Java(TM) SE Ru
- Spring中事件处理de小技巧
aijuans
springSpring 教程Spring 实例Spring 入门Spring3
Spring 中提供一些Aware相关de接口,BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,其中最常用到de匙ApplicationContextAware.实现ApplicationContextAwaredeBean,在Bean被初始后,将会被注入 Applicati
- linux shell ls脚本样例
annan211
linuxlinux ls源码linux 源码
#! /bin/sh -
#查找输入文件的路径
#在查找路径下寻找一个或多个原始文件或文件模式
# 查找路径由特定的环境变量所定义
#标准输出所产生的结果 通常是查找路径下找到的每个文件的第一个实体的完整路径
# 或是filename :not found 的标准错误输出。
#如果文件没有找到 则退出码为0
#否则 即为找不到的文件个数
#语法 pathfind [--
- List,Set,Map遍历方式 (收集的资源,值得看一下)
百合不是茶
listsetMap遍历方式
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身
- 解决SimpleDateFormat的线程不安全问题的方法
bijian1013
javathread线程安全
在Java项目中,我们通常会自己写一个DateUtil类,处理日期和字符串的转换,如下所示:
public class DateUtil01 {
private SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public void format(Date d
- http请求测试实例(采用fastjson解析)
bijian1013
http测试
在实际开发中,我们经常会去做http请求的开发,下面则是如何请求的单元测试小实例,仅供参考。
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import
- 【RPC框架Hessian三】Hessian 异常处理
bit1129
hessian
RPC异常处理概述
RPC异常处理指是,当客户端调用远端的服务,如果服务执行过程中发生异常,这个异常能否序列到客户端?
如果服务在执行过程中可能发生异常,那么在服务接口的声明中,就该声明该接口可能抛出的异常。
在Hessian中,服务器端发生异常,可以将异常信息从服务器端序列化到客户端,因为Exception本身是实现了Serializable的
- 【日志分析】日志分析工具
bit1129
日志分析
1. 网站日志实时分析工具 GoAccess
http://www.vpsee.com/2014/02/a-real-time-web-log-analyzer-goaccess/
2. 通过日志监控并收集 Java 应用程序性能数据(Perf4J)
http://www.ibm.com/developerworks/cn/java/j-lo-logforperf/
3.log.io
和
- nginx优化加强战斗力及遇到的坑解决
ronin47
nginx 优化
先说遇到个坑,第一个是负载问题,这个问题与架构有关,由于我设计架构多了两层,结果导致会话负载只转向一个。解决这样的问题思路有两个:一是改变负载策略,二是更改架构设计。
由于采用动静分离部署,而nginx又设计了静态,结果客户端去读nginx静态,访问量上来,页面加载很慢。解决:二者留其一。最好是保留apache服务器。
来以下优化:
- java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/25411174201011445550396/
import ljn.help.*;
public class HasSubtree {
/**Q50.
* 输入两棵二叉树A和B,判断树B是不是A的子结构。
例如,下图中的两棵树A和B,由于A中有一部分子树的结构和B是一
- mongoDB 备份与恢复
开窍的石头
mongDB备份与恢复
Mongodb导出与导入
1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.
所以,都有如下通用选项:
-h host 主机
--port port 端口
-u username 用户名
-p passwd 密码
2: mongoexport 导出json格式的文件
- [网络与通讯]椭圆轨道计算的一些问题
comsci
网络
如果按照中国古代农历的历法,现在应该是某个季节的开始,但是由于农历历法是3000年前的天文观测数据,如果按照现在的天文学记录来进行修正的话,这个季节已经过去一段时间了。。。。。
也就是说,还要再等3000年。才有机会了,太阳系的行星的椭圆轨道受到外来天体的干扰,轨道次序发生了变
- 软件专利如何申请
cuiyadll
软件专利申请
软件技术可以申请软件著作权以保护软件源代码,也可以申请发明专利以保护软件流程中的步骤执行方式。专利保护的是软件解决问题的思想,而软件著作权保护的是软件代码(即软件思想的表达形式)。例如,离线传送文件,那发明专利保护是如何实现离线传送文件。基于相同的软件思想,但实现离线传送的程序代码有千千万万种,每种代码都可以享有各自的软件著作权。申请一个软件发明专利的代理费大概需要5000-8000申请发明专利可
- Android学习笔记
darrenzhu
android
1.启动一个AVD
2.命令行运行adb shell可连接到AVD,这也就是命令行客户端
3.如何启动一个程序
am start -n package name/.activityName
am start -n com.example.helloworld/.MainActivity
启动Android设置工具的命令如下所示:
# am start -
- apache虚拟机配置,本地多域名访问本地网站
dcj3sjt126com
apache
现在假定你有两个目录,一个存在于 /htdocs/a,另一个存在于 /htdocs/b 。
现在你想要在本地测试的时候访问 www.freeman.com 对应的目录是 /xampp/htdocs/freeman ,访问 www.duchengjiu.com 对应的目录是 /htdocs/duchengjiu。
1、首先修改C盘WINDOWS\system32\drivers\etc目录下的
- yii2 restful web服务[速率限制]
dcj3sjt126com
PHPyii2
速率限制
为防止滥用,你应该考虑增加速率限制到您的API。 例如,您可以限制每个用户的API的使用是在10分钟内最多100次的API调用。 如果一个用户同一个时间段内太多的请求被接收, 将返回响应状态代码 429 (这意味着过多的请求)。
要启用速率限制, [[yii\web\User::identityClass|user identity class]] 应该实现 [[yii\filter
- Hadoop2.5.2安装——单机模式
eksliang
hadoophadoop单机部署
转载请出自出处:http://eksliang.iteye.com/blog/2185414 一、概述
Hadoop有三种模式 单机模式、伪分布模式和完全分布模式,这里先简单介绍单机模式 ,默认情况下,Hadoop被配置成一个非分布式模式,独立运行JAVA进程,适合开始做调试工作。
二、下载地址
Hadoop 网址http:
- LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构
gundumw100
android
一切为了快速迭代
import java.util.ArrayList;
import org.json.JSONObject;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayo
- 三道简单的前端HTML/CSS题目
ini
htmlWeb前端css题目
使用CSS为多个网页进行相同风格的布局和外观设置时,为了方便对这些网页进行修改,最好使用( )。http://hovertree.com/shortanswer/bjae/7bd72acca3206862.htm
在HTML中加入<table style=”color:red; font-size:10pt”>,此为( )。http://hovertree.com/s
- overrided方法编译错误
kane_xie
override
问题描述:
在实现类中的某一或某几个Override方法发生编译错误如下:
Name clash: The method put(String) of type XXXServiceImpl has the same erasure as put(String) of type XXXService but does not override it
当去掉@Over
- Java中使用代理IP获取网址内容(防IP被封,做数据爬虫)
mcj8089
免费代理IP代理IP数据爬虫JAVA设置代理IP爬虫封IP
推荐两个代理IP网站:
1. 全网代理IP:http://proxy.goubanjia.com/
2. 敲代码免费IP:http://ip.qiaodm.com/
Java语言有两种方式使用代理IP访问网址并获取内容,
方式一,设置System系统属性
// 设置代理IP
System.getProper
- Nodejs Express 报错之 listen EADDRINUSE
qiaolevip
每天进步一点点学习永无止境nodejs纵观千象
当你启动 nodejs服务报错:
>node app
Express server listening on port 80
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (
- C++中三种new的用法
_荆棘鸟_
C++new
转载自:http://news.ccidnet.com/art/32855/20100713/2114025_1.html
作者: mt
其一是new operator,也叫new表达式;其二是operator new,也叫new操作符。这两个英文名称起的也太绝了,很容易搞混,那就记中文名称吧。new表达式比较常见,也最常用,例如:
string* ps = new string("
- Ruby深入研究笔记1
wudixiaotie
Ruby
module是可以定义private方法的
module MTest
def aaa
puts "aaa"
private_method
end
private
def private_method
puts "this is private_method"
end
end