- Spring Boot 配置文件常用配置属性详解(application.properties / application.yml)
前言SpringBoot的一大优势就是通过简单的配置文件即可快速定制应用行为,而无需编写大量XML配置或Java代码。SpringBoot使用application.properties或application.yml作为核心配置文件,支持丰富的配置属性。本文将详细介绍SpringBoot常用的配置属性,包括:服务器配置数据源配置JPA/Hibernate配置日志配置Thymeleaf/模板引擎配
- Standard_Mutex 类详解
心瞳几何原语
学习OCCTOCCTQt
//Createdon:2005-04-10//Createdby:AndreyBETENEV//Copyright(c)2005-2014OPENCASCADESAS////ThisfileispartofOpenCASCADETechnologysoftwarelibrary.////Thislibraryisfreesoftware;youcanredistributeitand/ormod
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
Eric_xiaoQ
框架spring
转自:http://www.javaeye.com/topic/493282?page=1简单来说,自己的软件产品是一个基于互联网的SaaS协同软件平台,操作简单,支持流程定义,管理和多种客户端-像短信,MSN,智能手机什么的(我这里就不多做什么广告了),也有一个企业版的版本,使用的技术框架是hibernate+Spring+Wicket,下面是Linux和MySQL,还有云计算的平台的使用,以支
- Java 开发必备:Hibernate 实战技巧大揭秘
AI开发架构师
javahibernate开发语言ai
Java开发必备:Hibernate实战技巧大揭秘关键词:Hibernate、ORM、Session、事务管理、缓存优化、HQL、延迟加载摘要:本文从实战角度出发,结合生活案例与代码示例,深度解析Hibernate核心机制与开发技巧。无论你是Hibernate新手还是需要进阶的开发者,都能通过本文掌握从概念理解到项目落地的全流程技能,重点解决N+1查询、缓存优化、事务管理等高频问题,助你成为Jav
- Java 反射(Reflection)
YiHanXii
java后端开发java开发语言
什么是反射?反射(Reflection)是Java提供的一种机制,允许程序在运行时动态地检查类的信息,以及操作类的属性、方法和构造器。通过反射,程序可以动态地访问和修改对象的行为,而不需要在编译时确定具体的类型或行为。反射是Java的动态性特性之一,常用于框架(如Spring、Hibernate等)和工具类库中,实现高度灵活的功能。反射的核心类反射的核心类和接口都在java.lang.reflec
- hibernate中session增删改操作及事务提交的问题
一、问题回顾Sessionsession=MySessionFactory.getSession();//Transactiontx=null;//try{//Stringhql="deleteformtd_reportwhereID=1";//tx=session.beginTransaction();//Connectioncon=session.connection();//Prepared
- Spring @Repository注解深度解析与实践
bemyrunningdog
springbootsql数据库
以下是在您提供的@Repository注解解析基础上补充完善的系统化学习笔记,结合核心机制、实践细节及扩展场景,保留原有框架的同时增强深度与实用性:一、核心作用与定位(增强解析)组件注册与异常转换的双重角色Bean注册:继承自@Component,被@ComponentScan扫描后注册为SpringBean。异常统一化:通过AOP代理捕获JDBC/JPA/Hibernate等原生异常,转换为Sp
- Cascadeur2025如何无限制导出FBX文件
yangshuo1281
softcascadeur
Cascadeur2025如何无限制导出FBX文件Cascadeur2025如何无限制导出FBX文件前言在三维建模与动画制作领域,Cascadeur是一款强大的工具,而它的2025版本带来了更多便捷功能,特别是无线导出FBX格式的能力,这极大地提升了工作流程的效率。本文将详细介绍DSCAR2025的安装过程以及如何利用其进行FBX格式的无线导出,帮助广大设计师和开发者轻松掌握这一技术。技术难题在使
- 存储过程都有什么替代方案?
瑞信卡券提货系统
存储过程
存储过程的替代方案主要有以下几种:ORM(对象关系映射):ORM框架,如Hibernate、EntityFramework等,在客户端逻辑和数据库之间插入了一个层。这些框架能够生成SQL语句以在数据库上执行,从而避免了直接编写存储过程。使用ORM,开发人员可以在应用层表达复杂的业务逻辑,而无需将逻辑分散到存储过程中。ORM框架允许开发人员使用面向对象的方式操作数据库,提供了更高层次的抽象,使得代码
- oracle 11g drop user 失败,报错ORA-00600
有套Oracleoda一体机上,数据库版本是11204,删除用户时报错如下:SQL>dropusergs_jw3cascade;dropusergs_jw3cascade*ERRORatline1:ORA-00600:internalerrorcode,arguments:[16662],[kqldfau],[4],[0],[253890],[],[],[],[],[],[],[]使用rman备份
- 《MyBatis的运行原理》
一.MyBatis是什么?MyBatis是⼀个开源、轻量级的数据持久化框架,是JDBC和Hibernate的替代⽅案,MyBatis内部封装了JDBC,简化了加载驱动、创建连接、创建statement等繁杂的过程,开发者只需要关注SQL语句本身。二.MyBatis执行流程1.MyBatis与JDBC想要学习了解MyBatis,我们首先需要从JDBC入手并立足于JDBC,才能深入的理解MyBatis
- SDM(superviseddescentmethod)人脸特征点训练
ce0b74704937
SDM方法是13年在文章《SupervisedDescentMethodanditsApplicationstoFaceAlignment》提出的,github上一个大牛根据文章《RandomCascaded-RegressionCopseforRobustFacialLandmarkDetection》的方法利用SDM的思想实现了人脸特征点检测的任务。SDM方法有点老,但是今天啥也不想干了,又有
- vue如何实现Cascader 级联选择器(二级全部选中只展示一级,三级全部选中只展示二级)
小周同学:
vuevue.js
select提交重置级联exportdefault{data(){return{ruleForm:{selectLabel:[],idList:[],},citiesList:[],rules:{selectLabel:[{type:'array',required:true,message:'多选不能为空',trigger:'change'}],},props:{multiple:true,va
- 高校毕业设计选题管理系统的SSH框架实现
Kiki-2189
本文还有配套的精品资源,点击获取简介:该系统基于SSH架构(Struts2、Spring和Hibernate)建立,旨在简化和优化高校毕业设计的选题流程,提高教学管理效率。系统根据角色(管理员、教师、学生)分配不同功能与权限,涵盖用户管理、课题发布与审核、文档提交和评估等。采用了JSP技术进行用户界面的构建,并利用SSH框架的特性简化了开发流程,提高了系统的稳定性和交互性。1.SSH框架应用于Ja
- Open CASCADE+Qt:实现以鼠标为锚点缩放、平移、旋转
铁心探索界
OpenCASCADE+Qt那些事qtc++
简介本文实现在三维窗口中添加一个立方体,并实现以鼠标为锚点视图缩放、平移、旋转操作,效果见如下动图:添加立方体基于前面建立的三维窗口:OpenCASCADE+Qt:实现简单的显示窗口(下)在OCCWidget构造函数末尾,添加立方体,并将其添加到上下文中显示该立方体(绘制立方体不是本文重点):OCCWidget::OCCWidget(QWidget*parent):QWidget{parent},
- spring-data-jpa+spring+hibernate+druid配置
参考链接:http://doc.okbase.net/liuyitian/archive/109276.htmlhttp://my.oschina.net/u/1859292/blog/312188最新公司的web项目需要用到spring-data-jpa作为JPA的实现框架,同时使用阿里巴巴的开源数据库连接池druid。关于这两种框架的介绍我在这里就不多赘述。直接进入配置页面:spring的配置
- el-cascader 级联选择器回显数据方法
菌菇汤
vue.js前端javascript
需求场景:我是从表格获取行数据拿到仓库id【数组第一个是仓库id】和库位id【数组第二个是库位id】,根据id来回显数据。数据如下["0303a92c-14ad-4981-862e-570148cb3e77","0303a92c-14ad-4981-862e-570148cb3e77"]我踩的坑:我是获取了仓库id再去请求库位id,这就是局部加载了数据。重点:没有加载全部数据,是不可能回显数据的。
- ORM框架实战:MyBatis与JPA深度对比及企业级开发全攻略(终极优化版)
Android洋芋
mybatistomcatjavaORM框架数据库优化
一、ORM框架技术演进与选型策略1.1ORM框架的演进史JDBC时代:手动管理连接池、事务、SQL注入风险。Hibernate/JPA:2006年JPA标准化,推动ORM框架自动化。MyBatis:2010年诞生,强调SQL控制权,解决Hibernate“过度自动化”问题。2020年后趋势:MyBatis-Plus:提供Lambda表达式、自动分页等功能。SpringDataJPA:通过方法名自动
- 深入剖析 CSS 属性计算全流程:从层叠冲突到实际渲染值
CSS看似简单,但浏览器内部处理一个CSS属性值却经历多步变换——从级联冲突、继承、单位转换到布局阶段,最终生成屏幕呈现的具体像素。这一过程对复杂布局、响应式设计、性能调优等尤为关键。本文从规范和实践层面详解每个阶段,帮你写出更可靠、有效率的样式。一、CSS的四步值变换模型浏览器对每条CSS属性遵循如下清晰流程(按CSS2/CSS4定义):级联值(Cascaded):整合多个来源(用户、作者、UA
- JAVA——JAVA知识点集锦(下)
Faith_chao
JAVA基础JAVA基础知识点
转自:http://blog.csdn.net/Scythe666/article/details/51994782这部分主要是开源JavaEE框架方面的内容,包括Hibernate、MyBatis、Spring、SpringMVC等,由于Struts2已经是明日黄花,在这里就不讨论Struts2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇
- PythonOCC-Core 7.8.1版本Conda安装指南
PythonOCC-Core7.8.1版本Conda安装指南pythonocc-coretpaviot/pythonocc-core:是一个基于Python的OpenCASCADE(OCCT)几何内核库,提供了三维几何形状的创建、分析和渲染等功能。适合对3D建模、CAD、CAE以及Python有兴趣的开发者。项目地址:https://gitcode.com/gh_mirrors/py/python
- 数据库面试题06为什么要用MyBatis框架?
MyBatis是一个优秀的持久层框架(虽然常被归类为“半自动化”ORM,但其核心更侧重于SQL映射),它在Java开发中广泛应用,尤其在需要精细控制SQL、处理复杂查询或与遗留数据库交互的场景中备受青睐。选择MyBatis的主要原因可以总结为以下几点:对SQL的完全控制权(核心优势):开发者手写SQL:MyBatis要求开发者直接编写SQL语句(在XML映射文件或注解中)。这与Hibernate/
- PythonOCC-core项目中的Wayland显示支持探索
颜如良
PythonOCC-core项目中的Wayland显示支持探索pythonocc-coretpaviot/pythonocc-core:是一个基于Python的OpenCASCADE(OCCT)几何内核库,提供了三维几何形状的创建、分析和渲染等功能。适合对3D建模、CAD、CAE以及Python有兴趣的开发者。项目地址:https://gitcode.com/gh_mirrors/py/pytho
- OCCT AIS(交互) 核心基类 AIS_InteractiveObject
我们来详细解读一下AIS_InteractiveObject这个类。AIS_InteractiveObject是OpenCASCADETechnology(OCCT)中AIS(ApplicationInteractiveServices)模块的核心基类。简单来说,你在OCCT查看器中看到的、能与之交互(如点击选择、高亮、移动)的任何三维对象,几乎都是从AIS_InteractiveObject派生
- pythonocc-core 的项目扩展与二次开发
白娥林
pythonocc-core的项目扩展与二次开发pythonocc-coretpaviot/pythonocc-core:是一个基于Python的OpenCASCADE(OCCT)几何内核库,提供了三维几何形状的创建、分析和渲染等功能。适合对3D建模、CAD、CAE以及Python有兴趣的开发者。项目地址:https://gitcode.com/gh_mirrors/py/pythonocc-co
- PythonOCC【快速入门】
目录简单介绍环境小例子简单介绍pythonOCC也就是opencascade的python封装版本,是由tpaviot制作并发行的。pythonOCC是python语言构架的3DCAD/CAE/PLM开发框架,它提供了如下功能:复杂曲面的操作,信息转换(STEP,IGES,STL格式),用户界面可视化(基于wxpython库或者qt库),jupyternootbook生成等。环境https://a
- 探索Python OCC核心:高效3D建模与CAD编程的利器
邢郁勇Alda
探索PythonOCC核心:高效3D建模与CAD编程的利器项目地址:https://gitcode.com/gh_mirrors/py/pythonocc-core项目简介pythonocc-core是一个开源项目,它是OpenCASCADETechnology(OCC)的Python绑定,提供了一套强大的3D建模和计算机辅助设计(CAD)工具。利用Python的易用性和OCC的强大功能,此项目旨
- django 数据表外键 删除时 对应表的数据不删除如何设置
在Django中,如果你想设置一个外键关系,使得在删除主表(父表)的记录时,从表(子表)的记录不会被自动删除,你可以使用on_delete参数来指定外键的行为。默认情况下,Django的外键关系在删除父表记录时会设置为CASCADE,即级联删除。如果你不想在删除父表记录时自动删除子表记录,你可以使用SET_NULL、PROTECT或DO_NOTHING作为on_delete的值。SET_NULL如
- Java 领域 Hibernate 的事务传播行为详解
Java大师兄学大数据AI应用开发
javahibernate开发语言ai
Java领域Hibernate的事务传播行为详解关键词:Hibernate、事务传播、Spring事务、PROPAGATION_REQUIRED、PROPAGATION_REQUIRES_NEW、事务隔离级别、数据库事务摘要:本文将深入探讨Hibernate框架中的事务传播行为机制。我们将从基础概念出发,详细解析七种标准的事务传播行为类型,包括REQUIRED、SUPPORTS、MANDATORY
- 01.SpringBoot集成持久层框架MyBatis详细指南
全栈凯哥
全栈项目springbootmybatis后端
文章目录1.MyBatis简介1.1什么是MyBatis?1.2MyBatis的核心特点1.3MyBatisvsJPA/Hibernate1.3.1MyBatis的优势1.3.2JPA/Hibernate的优势1.4MyBatis核心组件1.4.1SqlSessionFactory1.4.2SqlSession1.4.3Mapper接口1.4.4Configuration2.SpringBoot集
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。