- 推荐开源项目:RTL8852BE —— 无线网卡驱动的福音
周琰策Scott
推荐开源项目:RTL8852BE——无线网卡驱动的福音项目地址:https://gitcode.com/gh_mirrors/rt/rtl8852be1、项目介绍RTL8852BE是一个开源项目,旨在为Linux内核提供针对RealtekRTL8852BE芯片的驱动支持。这个项目由Rock_Shen开发,并从TinkerBoard2/kernel分支出来,现在由HRex39维护。它主要用于解决Li
- Amazon Neptune
HaoHao_010
人工智能aws云计算服务器云服务器数据库
AmazonNeptune是AWS提供的完全托管型图数据库服务,专门设计用于处理复杂的图形数据结构,支持快速执行图查询。它支持两种主流的图模型:属性图和RDF图,并且兼容ApacheTinkerPop和SPARQL查询语言,这使得它可以满足多种图数据库的应用需求。AmazonNeptune的主要特点和功能完全托管的图数据库服务:AmazonNeptune是一个完全托管的数据库服务,意味着AWS会处
- 华硕Tinker Board开发板(rk3288处理器)开发 ---- 编译Android7.1.2源码流程
JimmyHoo0000
TinkerBoardrk3288开发Android源码编译Android7.1.2编译u-boot编译kernel编译AOSP
备注:在window7系统下,安装VMWorkstation(虚拟机),在虚拟机中安装了ubuntu16.04desktop版本linux系统,进行android源码编译的。编译android源码,最好是以root权限运行,不然很多东西需要授权(麻烦)。进入root身份方式:首先输入suroot,接着输入密码(已经设定好的)。如果没有设定过root密码,请这样操作:sudopasswdroot,接
- 踩坑热修复框架Tinker
小蜗牛在漫步
Tinker是什么Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。为什么使用Tinker当前市面的热补丁方案有很多,其中比较出名的有阿里的AndFix、美团的Robust以及QZone的超级补丁方案。但它们都存在无法解决的问题,这也是正是使用Tinker的原因。总的来
- 2016年高考英语全国卷2 - 阅读理解B
让文字更美
Fiveyearsago,whenItaughtartataschoolinSeattle,IusedTinkertoysasatestatthebeginningofatermtofindoutsomethingaboutmystudents.IputasmallsetofTinkertoysinfrontofeachstudent,andsaid:“MakesomethingoutoftheT
- html表单没的csrf保护,表单与csrf保护
翰遴院遴选
html表单没的csrf保护
##表单提交和CSRF在本课程中,我们将介绍将表单数据提交到服务器的基本工作流程。在此过程中,我们将介绍一个新概念:`CSRF`(跨站点请求伪造)。###新手建议前面几节我们介绍了如何从数据库中获取数据,使用`Tinker`添加测试数据。接下来我们在页面中实现添加数据并展示。>不论做任何复杂的功能,都是从简单开始,慢慢迭代,这里给新手一个建议,不论做什么都先按照`路由->控制器->视图`的顺序来开
- 【AI视野·今日CV 计算机视觉论文速览 第292期】Thu, 18 Jan 2024
hitrjj
视觉计算机视觉Papers计算机视觉CV生成模型AIGC3D高效计算
AI视野·今日CS.CV计算机视觉论文速览Thu,18Jan2024Totally102papers上期速览✈更多精彩请移步主页DailyComputerVisionPapersGARField:GroupAnythingwithRadianceFieldsAuthorsChungMinKim,MingxuanWu,JustinKerr,KenGoldberg,MatthewTancik,Angj
- 穿越阿帕拉契亚(二十七)漫步云端
Hobbit霍比特人
一双子山脊Tinkertoe和B回望杰菲尔德山总统山脊锡兰客栈美国青年锡兰客栈锡兰客栈客栈床铺,简单坚实锡兰瀑布伊森湖AMC高地中心克劳福德客栈遗址夜深沉,巨大的双子山脊挡住月色,像厚重的帷幕笼罩加勒熙德客栈。告别局促的帐篷和简陋的木屋,客栈硬邦邦的长椅让我感到格外舒适,不知不觉间又是一个明亮的早晨。晨曦从山脊间的缝隙扫过窗台,像母亲的手轻抚着我的脸庞。揉揉惺忪睡眼,我从睡袋中钻出来,环视周遭。客
- 引用cn.bertsir.zbarLibary:zbarlibary闪退
rimuweinuan_
Android问题android
错误内容:TinkerUncaughtHandlercatchexception:java.lang.RuntimeException:UnabletostartactivityComponentInfo{com.sinoservices.scantest/cn.bertsir.zbar.QRActivity}:android.view.InflateException:BinaryXMLfile
- 腾讯系热修复-Tinker使用及原理
月影路西法
简介Tinker是适用于Android的修补程序库,它支持dex,库和资源更新,而无需重新安装apk。更新完成后重新启动即可Tinkergithub官方地址添加依赖1.app的build.gradlebuildscript{dependencies{classpath('com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1')}}2.在module
- TinkerTool System for Mac(系统设备维护软件)
過客_fad6
你需要一款好用的系统设备维护软件吗?TinkerToolSystemMac破解就是一款这样的软件。TinkerToolSystemformac破解版可以帮助你修改系统界面字体、隐藏文件等一些系统隐藏的属性,使用TinkerToolSystemforMac破解版轻松进行系统维护。TinkerToolSystemMac下载路径:http://t.cn/AiHIoUvh下载完成后打开“TinkerToo
- Laravel factory 生成测试数据
kimcastle
素材:Laravel框架已经有一个测试的demo,在App/database/factories/UserFactory.php步骤:使用命令phpartisantinker进入tinkerphpartisantinker使用命令phpartisantinker2.输入namespaceApp;使用命名空间namespaceApp;输入namespaceApp;使用命名空间查询原来User模型里有
- Android 开发高手课笔记-存储篇
毛先森
前言这套课程是由微信团队,Tinker前负责人张绍文出品相关链接Java对象序列化您不知道的5件事……ObjectOutputStream源码SharePerfrence缺点不论apply(异步)还是commit(同步)都会将整个xml文件重写跨进程容易出现问题,尽管开启了sp的多进程模式极端情况下,App崩溃时数据没落地,最终导致丢失数据序列化-SerializableSerializable原
- Tencent Tinker:移动应用热修复的未来之路
Calvin880828
Android开源框架android
TencentTinker:移动应用热修复的未来之路1引言移动应用热修复是一项在移动应用开发领域中日益重要的技术,它可以帮助应用程序开发者快速修复线上应用的bug、漏洞和功能问题,而无需重新发布整个应用。这种能力对于提高用户体验、降低用户流失率以及快速响应市场需求非常关键。作为移动应用热修复领域的一项重要技术,TencentTinker在这方面发挥着重要的作用。TencentTinker是一个灵活
- MBA十日读--战略章节 笔记
Dachao_lpc
笔记创业创新职场和发展业界资讯学习方法经验分享
战略思维是对一个企业及其所属行业、竞争及对手和长、短期经营环境的综合分析公司需要有深思熟虑的战略规划,否则,将不可避免地成为市场的牺牲品,而不是左右市场的胜利者7S要素模型战略规划包括两个特性不同的阶段:制定和执行如果一个战略需要大幅度调整现有组织,即称为重构(reengineering);反之,即称为组织性调整(organizationaltinkering)●结构(structure)●系统(
- (二)知识图谱数据模型与查询语言
韩韩吖吼
学习KG知识图谱人工智能
知识图谱数据模型与查询语言RDF图数据模型与SPARQL查询语言RDF图数据模型资源描述框架(RDF)数据资源描述框架(RDF)数据示例RDF三元组RDF图RDFSchemaSPARQL查询语言属性图数据模型与Cypher查询语言属性图模型介绍TinkerPop图计算框架与Gremlin图遍历语言与遍历机RDF图数据模型与SPARQL查询语言RDF图数据模型资源描述框架(RDF)数据RDF是知识图
- BuildRoot配置RTL8822CE WIFI&BT模块(BT部分)
zoipuus
TinkerBoard2嵌入式linuxRTL8822CEBT
BuildRoot配置RTL8822CEWIFI&BT模块(WIFI部分)-CSDN博客WIFI部分更新一下:①、rkwifibt.mk查看了output/rockchip_rk3399_tinkerboard2/build/的两个目录都有wifi相关的ko(后面makeclean之后剩下linux-headers-custom路径的),md5都一样,随便选了一个,拷贝所有kozoipuus@AD
- 嵌入式Linux Qt交叉编译环境搭建
zoipuus
TinkerBoard2嵌入式qtlinux
1、下载Qt编译器TinkerBoard2主板,BuildRoot根文件系统,package自带的Qt版本为5.14.2,所以安装的版本也是5.14.2wgethttps://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-linux-x64-5.14.2.runchmoda+xqt-opensource-linux-x64-5.14.2.r
- No such property: variantConfiguration for class: com.android.build.gradle.internal.variant.Appli...
Lee坚武
集成bugly热修复的时候,在依赖插件脚本的时候报错了://依赖插件脚本applyfrom:'tinker-support.gradle'报错内容如下:Nosuchproperty:variantConfigurationforclass:com.android.build.gradle.internal.variant.ApplicationVariantData解决方案:将gradle的版本改
- 试译《今日简史》13
自由译者小帮
Thenextstepisforthealgorithmtostarttinkeringwiththesongsandmelodiesthemselves,changingthemeversoslightlytofityourquirks.Perhapsyoudislikeaparticularbitinanotherwiseexcellentsong.Thealgorithmknowsitbec
- TinkerBoard2板卡BuildRoot系统配置YYT-MIPI7LCD
zoipuus
TinkerBoard2嵌入式linuxBuildRoot
摘录风火轮WikiTinkerboard2Debian下MIPI-DSI屏幕的适配方法|风火轮Wiki(smartfire.cn)简单介绍一下目前RK3399的显示框架。目前的Debian采用的都是LinuxDRM框架进行显示,在DRM框架中,其显示通路如下图所示图中的几个组成部分Framebuffer:显存,嵌入式系统使用的是内存的一部分CRTC:显示控制器,在RK3399平台是SOC内部VOP
- TinkerBoard2跑BuildRoot
zoipuus
TinkerBoard2嵌入式linux运维服务器
Ubuntu22.04.3编译BuildRoot遇到的问题处理:编译TinkerBoard2板卡BuildRoot系统.pdf资源-CSDN文库我的主板没有EMMC,只能烧录到TF卡1、格式化TF卡可以直接在windows平台格式化,我是用命令行的使用$sudofdisk-l查看设备,找到对应的设备路径,如/dev/sdd使用$sudofdisk/dev/sdd命令格式化d//删除分区n//新建分
- BuildRoot配置RTL8822CE WIFI&BT模块(WIFI部分)
zoipuus
TinkerBoard2嵌入式linux8822cebuildroot
TinkerBoard2主板自带的无线模块为RTL8822CE,PCIe接口之前在风火轮下载的Linux源码编译出来的BuildRoot根文件系统没有相关的驱动文件[root@rk3399:/]#find.-name*.ko[root@rk3399:/]#lsmodModuleSizeUsedbyNottainted[root@rk3399:/]#1、配置无线网卡驱动在kernel路径下执行mak
- 女儿和她的好朋友
无忘我
女儿小时候在美国最好的朋友Alyson去世了,她才20岁。女儿非常悲伤,写了这篇纪念文章发在Facebook上,谨以此提醒人们珍惜生命、珍惜家人。为了更多朋友看到,我把它翻译成中文供大家阅读、思考。我想跟你们分享一个故事,我小时候最好的朋友ALysonTinker的故事。她最近去世了,她才20岁。我希望这个故事能够提醒人们:生命是多么的脆弱!她是多么优秀的一个人。Alyson,你曾经体格健壮。我记
- 救我于水深火热的「热修复」
Android之禅
上周五线上项目出现了紧急缺陷,无奈之下周六苦逼加班发补丁,唯一值得欣慰的是由于出现缺陷的功能会在今天通过ABTest下发,补丁赶在了大推之前。刚好周日在家闲着,就写一下「救我于水深火热的热修复」。希望当你看完这篇文章之后,能够了解到应用热修复它并不难,也不需要自己造轮子,业界很多优秀的框架如Tinker,Robust,Sophix等。如果项目还没有支持这个热更能力,希望你能尝试折腾慢慢接入,这不仅
- flutter在android端启动流程和热修复
218b1d90edd8
因为flutter和原声Android启动流程不一样所以如果使用android热修复框架比如tinker会有一些区别,所以先要弄明白flutter在android端的启动流程,然后我们才可以进行针对性的处理和热修复。flutter在android端启动流程首先flutter程序的入口和android一样都是application类,这个在android代码中的manifast文件中可以找到,默认都
- TinkerPatch热修复接入笔记
志威梦
Tinker热修复框架接入Android现在开发App基本都开始接入热修复框架,为的就是能够修复一些线上紧急Bug。热门的热修复框架以及对比,网上介绍的也很多,个人而言就用过腾讯的tinker以及阿里的sophix。腾讯tinkerTinker简介,根据官方文档接入tinker,然后测试热修复补丁,总是莫名地失败(或许是自己技术太渣)。无奈就不去折腾它,而选择了第三方的tinkerpatch这个s
- C# 简单的跨线程控件改变数值
hkmaike
C#C#Delegate
#改变TextBoxRsp的Text#跨线程改变textBoxRsp内容this.Invoke(newMethodInvoker(()=>{textBoxRsp.Text="InvokeTinkerEdge";}));
- 热修复框架 - Tinker 安装流程分析
Stan_Z
代码tinker1.9.14.7TinkerApplication初始化完成之后,接着会在继承DefaultApplicationLike的子类中进行Tinker初始化:@OverridepublicvoidonBaseContextAttached(Contextbase){super.onBaseContextAttached(base);Log.d(TAG,"HotFixApplicatio
- Tinker 环境下数据表的用法
檀玥
laravelphp
如果我们要自己手动创建一个模型文件,最简单的方式是通过make:model来创建。phpartisanmake:modelArticle删除模型文件rmapp/Models/Article.php创建模型的同时顺便创建数据库迁移phpartisanmake:modelArticle-mEloquent表命名约定在该文件中,EloquentArticle模型默认情况下会使用类的「下划线命名法」与「复
- 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独立出来,数据持