- ubuntu中的配置文件,bashrc、profile
阿斯顿的风格
ubuntu服务器linuxbashpython
系统级配置文件/etc/profile作用:为所有Bourne兼容shell(包括Bash、sh等)提供登录时的全局环境设置。加载时机:当用户登录(例如在控制台登录或图形界面登录时启动登录shell)时,都会首先加载此文件。常见配置内容:设置全局环境变量(如PATH、LANG等)调用/etc/profile.d/目录下的脚本#/etc/profile示例片段#设置全局PATHPATH="/usr/
- linux,ubuntu下source、sh、bash、./执行脚本的区别
初识-CV
linuxUbuntuUbuntusourceshbash./
ubuntu下source、sh、bash、./执行脚本的区别source命令用法sourceFileName作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"注:该命令通常用命令“.”来替代。如:source.bash_profile..bash_profile两者等效。source(或点)命令通常用于重新执行刚修改的初始化文档。source命
- Java 项目 IntelliJ IDEA 多环境配置详解
我真的不想做程序员
javajavaintellij-idea开发语言ide后端
目录一、使用MavenProfiles实现多环境配置1.在`pom.xml`中配置Profiles2.创建多环境配置文件3.配置文件内容示例`application.properties``application-dev.properties``application-test.properties``application-prod.properties`4.在代码中获取配置5.激活MavenP
- ios如何像android那样不上架安装
ios上架
大家都知道像鸿蒙、安卓的安装是比较简单的,可以直接在android或华为手机上安装,不一定通过在线商店安装。但是ios手机不一样,假如你是使用普通苹果账号打包的appstore类型的ipa包,是无法直接安装在ios手机的,必须通过上架才能安装。不过,ios想直接安装,还是有通道的,就是注册苹果企业开发者账号,通过企业开发者账号,生成inhouse类型的证书和描述文件(证书profile文件),通过
- mybatis plus sql性能分析插件
asvxc324deas
程序员mybatissqlandroid
在MybatisPlusConfig加入sql性能分析插件一、mybatis-plus自带的性能分析/**SQL执行效率插件性能分析插件*/@Bean@Profile({“dev”,“test”})//设置devtest环境开启publicPerformanceInterceptorperformanceInterceptor(){PerformanceInterceptorperformance
- Storm实战常见问题及解决方案
Lzy失控的
storm-分布式流式计算bigdata-大数据
原文seehttp://blog.sina.com.cn/s/blog_8c243ea30101k0k1.html1关于Storm集群1.1关于storm集群的环境变量配置问题安装好JDK后,需要配置环境变量,通常情况下出于经验,我们往往会修改/etc/profile的值进行环境变量配置,但这在安装JDK以及后面安装的storm集群、zookeeper集群以及metaq集群时会出问题,这时候我们需
- Bluetooth Profile Specification之(AVRCP篇)5.0 AVRCP简介
心跳包
蓝牙篇之蓝牙协议规范蓝牙
蓝牙篇之BluetoothProfileSpecification深入详解汇总目录1.什么是AVRCP?2.协议栈模型关注文末微信公众号,回复【蓝牙规范】,即可获取AVRCP英文版协议。1.什么是AVRCP?字面意思音频/视频远程控制协议。AVRCP定义的命令和信息是通过AVCTP通过传输出去的。AVRCP协议不处理音视频流,支持这个协议的设备可以通过A2DP来分发流媒体数据。1.5版本到1.6版
- Python计算DEM(tif格式)坡度和坡向
见贤思齐547
Python地理数据处理python
本文根据山东省DEM图获取坡度、坡向图,使用了三种方式:PythonGDAL工具自带的函数处理、Python中自己编写函数实现和arcgis中实现。一.Python中实现(针对TIF格式的DEM数据)1.利用gdal工具处理(1)代码fromosgeoimportgdal,osr#获取影像信息infoDEM=gdal.Info(r"D:\ProfessionalProfile\DEMdata\2_
- 第十六篇 SQL优化之计划控制:进阶之路带上这篇文章,快到起飞
随缘而动,随遇而安
SQL之道——从入门到精通数据库sql
目录一、执行计划是啥?为啥要控制它?1.1执行计划就像导航路线1.2不管控执行计划的后果二、操控执行计划的「三板斧」2.1第一招:HINT大法(直接下指令)2.2第二招:暗度陈仓(间接引导)方法1:统计信息大法方法2:虚拟列黑科技方法3:分区表妙用2.3第三招:计划冻结术(一劳永逸)SQLProfilevsBaseline对比表三、实战演练:从青铜到王者案例:分页查询优化(5秒→0.1秒)四、课后
- 全面了解 Vue 路由中 path属性的使用方法和相关配置
遇见~未来
Vue.jsvue.js前端javascript
在Vue路由中,path是一个非常重要的属性,它定义了路由的路径。以下是关于path的详细介绍:1.基本写法path是一个字符串,表示路由的路径。它可以是绝对路径(以/开头)或相对路径(不以/开头,通常用于子路由)。2.是否必须以/开头绝对路径:通常以/开头,表示从根路径开始匹配。例如,/home、/user/profile。相对路径:不以/开头,通常用于子路由,表示相对于父路由的路径。例如,在一
- 微信、企微开发者文档及后台管理连接
就叫飞六吧
企业微信
企微开发者文档:https://developer.work.weixin.qq.com/document/path/90664后台:https://work.weixin.qq.com/wework_admin/frame#/profile微信开发者文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Acce
- 【prompt实战】知乎问题解答专家
姚瑞南
prompt实战应用案例prompt
本文原创作者:姚瑞南AI-agent大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权)#Role:知乎问题解答分类专家##Profile:你是一个知乎问题解答分类专家,主要帮助用户解答各类领域专业问题,包括但不限于金融领域、职场问题、互联网领域、科技领域、人工智能领域
- 音视频入门基础:RTP专题(18)——FFmpeg源码中,获取RTP的音频信息的实现(上)
崔杰城
音视频技术FFmpeg源码分析音视频ffmpeg
由于本文篇幅较长,分为上、下两篇。一、引言通过FFmpeg命令可以获取到SDP描述的RTP流的的音频压缩编码格式、音频压缩编码格式的profile、音频采样率、通道数信息:ffmpeg-protocol_whitelist"file,rtp,udp"-iXXX.sdp而由《音视频入门基础:RTP专题(17)——音频的SDP媒体描述》可以知道,SDP协议中,a=rtpmap属性和a=fmtp属性中的
- maven--依赖的搜索顺序
IT利刃出鞘
构建工具(后端)mavenjava
原文网址:maven--依赖的搜索顺序-CSDN博客简介本文介绍maven中依赖的搜索顺序。依赖搜索顺序maven项目使用的仓库的方式中央仓库。这是默认的仓库。对应url为:http://repo1.maven.org/maven2/镜像仓库。通过settings.xml中的settings.mirrors.mirror配置全局profile仓库。通过settings.xml中的settings.
- Common Solder Defects and Root Cause Analysis
px5213344
pcb工艺
Generalguidanceitiswellknownthat60-70%ofallsolderdefectscanbetracedbacktotheprintingdefectssuchassolderbridging,coldslumpandUnevenSolderPasteDepositwhilefinetuningthereflowprofiledobenefitandavoidsome
- 鸿蒙ZRouter动态路由框架—服务路由
H.ZWei
HarmonyOS应用开发鸿蒙HarmonyosNavigationrouter
前言源码:https://gitee.com/common-apps/ZRouterOH:https://ohpm.openharmony.cn/#/cn/detail/@hzw%2Fzrouter服务路由主要用于实现模块之间的通信,模块间是相互独立且不直接依赖于彼此。首先确保路由插件在1.0.9版本及以上一、添加配置1、在entry模块的build-profile.json5文件的buildOp
- 【Mac 系统卸载 Go 语言完整指南】
qq_837287396
macosgolang开发语言
Mac系统卸载Go语言完整指南1.删除Go安装目录#定位安装路径whichgo#默认路径为`/usr/local/go`#删除安装目录sudorm-rf/usr/local/go#删除系统路径配置(通过.pkg安装时需执行)sudorm-rf/etc/paths.d/go2.清理环境变量#编辑Shell配置文件(如~/.zshrc或~/.bash_profile)#删除以下内容:expor
- mac M1 安装flutter
小泥人(倪)
macosflutter
M1安装Flutter1-官网下载flutterSDK盘符自己记好https://docs.flutter.dev/release/archive?tab=macos2-控制台配置环境变量open.zshrc/bash_profile//平常在哪配就打开哪个文件3-复制粘贴exportPATH="$PATH:/Users/xnr/Documents/flutter/bin:$PATH"//自己安装
- 【电脑垃圾清理BAT脚本】
开心呆哥
windows
@echoofftitle垃圾清工具,正在清理中@作者天天卫士...echo正在清除系统垃圾文件,请稍等......echo删除腾讯QQ缓存文件del/f/s/q"%userprofile%\AppData\Roaming\Tencent*.*"del/f/s/q"%userprofile%\AppData\Roaming\360Login*.*"del/f/s/q"%userprofile%\A
- Spring Boot
Bromide-0
#Spring框架springbootjava
文章目录1.关于SpringBoot2.创建SpringBoot工程3.SpringBoot工程的结构4.在SpringBoot工程中使用Mybatis5.关于Profile配置6.关于YAML配置7.使用Druid数据库连接池8.编写持久层(数据访问层)代码9.关于业务逻辑层(Service层)10.使用Lombok框架11.Slf4j日志框架12.密码加密13.控制器层开发14.Validat
- Pandas真实案例进阶:从数据清洗到高性能分析的完整指南
Eqwaak00
Pandaspython开发语言科技pandas
案例背景:电商用户行为分析假设某电商平台提供以下数据集(模拟数据包含100万条记录),需完成用户行为分析:user_logs.csv:用户浏览、加购、下单日志user_profiles.csv:用户地域、设备信息product_info.csv:商品类目、价格数据一、数据加载与内存优化1.1智能数据类型转换#列类型预设字典dtype_dict={'user_id':'category','even
- 【bluedroid】A2dp Source播放流程源码分析(1)
byte轻骑兵
解读Android通信协议蓝牙BluedroidC++
在蓝牙音频传输领域,A2DP(AdvancedAudioDistributionProfile,高级音频分发协议)扮演着关键角色,它能够实现高质量音频(如立体声音乐)通过蓝牙在不同设备间的传输。在Android系统所采用的Bluedroid蓝牙协议栈里,A2DPSource承担着音频流发送的重任,将音频数据传输至A2DPSink(像车载音响、蓝牙耳机等接收设备)。一、概述Bluedroid作为An
- 【Bluedroid】A2dp Sink初始化源码分析
byte轻骑兵
解读Androidc++通信协议蓝牙Bluedroid
在Bluedroid蓝牙协议栈中,A2DP(AdvancedAudioDistributionProfile)Sink负责接收来自A2DPSource(如手机、音乐播放器等)的音频流,并将其播放到本地设备(如车载音响、蓝牙耳机等)上。A2DPSink的初始化是确保A2DPSink服务能够正确运行的关键步骤。一、A2DPSink初始化流程系统启动或用户请求:当系统启动或用户请求启动A2DPSink服
- centos 7下安装mongodb
金麟十三少
MongoDBcentos7下安装mongodb
1、访问mongodbhttps://www.mongodb.com/download-center/community2、我选择版本3.2.22下载解压,并进入/usr/local/mongodb/配置环境变量source/etc/profile在/usr/local/mongodb/bin/新建mongodb.conf,内容是#数据文件存放目录dbpath=/usr/local/mongodb
- pnpm安装报错
魏时烟
工作日志npm前端node.js
mac安装pnpm成功,查看版本报错pnpm:commandnotfound执行命令//查看npm默认安装路径npmconfiggetprefix//1.新建一个全局安装的路径mkdir~/.npm-global//2.配置npm使用新的路径npmconfigsetprefix'~/.npm-global'//3.打开或者新建~/.profile,(vi~/.profile)加入下面一行expor
- 关闭iterm2中对于行数的限制
你的微笑像拥抱
工具
iTerm2默认的行数限制,超过1000的部分就被隐藏不显示了。处理方式:打开Preferences窗口,点击Profiles,右侧点击Terminal,在Scrollbackline右边勾选Ulimitedscrollback。
- 用DevEco Studio性能分析工具 高效解决鸿蒙原生应用内存问题
harmonyos
在鸿蒙原生应用开发过程中,可能由于种种原因导致应用内存未被正常地使用或者归还至操作系统,从而引发内存异常占用、内存泄漏等问题,最终导致应用卡顿甚至崩溃,严重影响用户体验。为了帮助鸿蒙应用开发者高效定位并解决内存问题、提升应用稳定性与体验,华为在DevEcoStudio上提供了专属的性能分析工具——DevEcoProfiler,提供鸿蒙原生应用内存问题的场景化分析模板——SnapshotInsigh
- DeepSeek开源周:面向大模型训练的三个工具包
花生糖@
AIGC学习资料库DeepSeek实用集DualPipeEPLBProfile-dataDeepseek
在2025年的开源周中,DeepSeek推出了一系列旨在优化大规模模型训练效率的工具。这些工具包括DualPipe、EPLB以及Profile-data,它们分别从不同的角度解决了万亿参数模型训练中的算力瓶颈问题,为行业带来了前所未有的加速和效率提升。DualPipe:双向流水线架构的创新DualPipe通过其首创的双向流水线架构,极大地提高了计算与通信的重叠率至92%,相比NVIDIAMegat
- # MAC系统多版本jdk安装
成知节
javajavajdk
#MAC系统多版本jdk安装##说明jdk在macOS下的安装路径为/Library/Java/JavaVirtualMachines/;/usr/libexec/java_home是macOS下提供的工具,类似一个简单的java版本管理工具,可使用-h参数查看使用帮助。第一步官网下载jdk,然后安装配置bash_profile,如果是zsh配置~/.zshrc配置内容exportJAVA_6_H
- Windows Terminal ssh到linux
驰驰的老爸
windowssshlinux
1.windowsstore安装WindowsTerminal2.打开json文件配置{"$help":"https://aka.ms/terminal-documentation","$schema":"https://aka.ms/terminal-profiles-schema","actions":[{"command":{"action":"copy","singleLine":fals
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" {
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持