- 【Spring Boot】3.@RequestParam和@RequestBody的不同&用法示例
卤小蛋学编程
SpringBoot&Springjavaspringboot
1.@RequestParam该标签用于接受请求头中的参数,该标签配置了四个参数:public@interfaceRequestParam{@AliasFor("name")Stringvalue()default"";@AliasFor("value")Stringname()default"";booleanrequired()defaulttrue;StringdefaultValue()d
- Hadoop 与 Spark:大数据处理的比较
王子良.
大数据经验分享hadoopspark大数据
欢迎来到我的博客!非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。博客内容包括:Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Fli
- RabbitMQ消息监听异常问题探究
风树种子
RabbitMQRabbitMQspringWireshark异常requeue
问题场景在使用SpringRabbitMQ做消息监听时,如果监听程序处理异常了,且未对异常进行捕获,会一直重复接收消息,然后一直抛异常。为了更好的描述问题,下面写个简单的例子。通过访问null对象来引发空指针异常,消息监听处理程序代码清单:packageamqp;importorg.springframework.amqp.core.Message;importorg.springframewor
- @LoadBalanced注解的实现原理
DanceDonkey
客户端负载均衡RestTemplateSpringCloudRPC
@LoadBalanced@LoadBalanced注解通常结合RestTemplate使用,RestTemplate是SpringCloud提供的一个编程式的实现远程过程调用的组件,简单来说就是可以实现发送http请求。但是在基于服务发现发送请求时,RestTemplate自己无法实现负载均衡,通常要标注@LoadBalanced。虽然之后一个RestTemplate对象,但这个对象是线程安全的
- feign调用远程服务如何忽略SSL证书
Capslockcc
sslhttpsjava
feign调用远程服务如何忽略SSL证书1.引入依赖2.添加配置3.原理解释1.引入依赖org.springframework.cloudspring-cloud-starter-openfeignio.github.openfeignfeign-okhttp10.2.02.添加配置#禁用ssl证书验证feign.httpclient.disable-ssl-validation=true完成以上
- 税务门户网站系统:数据分析与税务政策传播
liuxin33445566
安全java开发语言数据库前端
2.1SSM框架介绍本课题程序开发使用到的框架技术,英文名称缩写是SSM,在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等,作为一个课题程序采用SSH框架也可以,SSM框架也可以,SpringMVC也可以。SSH框架是属于重量级别的框架,配置繁琐,不够灵活,修改程序需要修改好多个文件,并且运行起来也占用内存较高,CPU使用率相对也高,SpringMVC是Spring开发的
- feign动态设置数据源(https请求)
传智教育
httpsjava网络协议
feign动态设置数据源(https请求)1、背景在使用springboot-feign/spingcloud-feign时,需要在启动springboot的时候,注入的方式将feigncofing配置好,也就是说项目启动以后只能有一个数据源,且不能修改,在网上找了很多资料没有找到解决方案(网上应该有,只是我没有找到),后面只能是硬着头皮看源码,问题解决2、代码其实在这里用的原生的feign,并不
- @RabbitListener处理重试机制完成后的异常捕获
DanceDonkey
ruby开发语言后端
application.properties中配置开启手动签收spring.rabbitmq.listener.direct.acknowledge-mode=manualspring.rabbitmq.listener.simple.acknowledge-mode=manual定义一个重试器@Slf4j@ConfigurationpublicclassRabbitMQRetryConfing{
- com.mongodb.MongoSocketOpenException: Exception opening socket错误解决方法
且听风吟,
JAVAmongodbjava数据库
详细错误信息:com.mongodb.MongoSocketOpenException:Exceptionopeningsocketatcom.mongodb.connection.SocketStream.open(SocketStream.java:63)~[mongodb-driver-core-3.4.2.jar:na]atcom.mongodb.connection.InternalSt
- com.mongodb.MongoSocketOpenException: Exception opening socket
Mizon�
mongodb
application.yml换成application.properties,MongoAutoConfiguration上的@ConfigurationProperties识别不了yml
- 视频的上传,转码与展示的过程
小子武
java视频上传视频转码
本文是记录自己学习过程的,不适合直接拿来用的业务需求及场景后台基于springboot的微服务框架,页面是vue用户可以选择一个视频上传的管理页面,新增时,用户可以选择上传封面图片或者不选择上传封面图片(此时要根据视频的格式决定是从视频中截图或者展示默认图片)页面效果先不展示了,涉及的信息比较多这里贴的是视频转码功能部分,我从网上找的代码又根据自己的需要又改的,很佩服写这段代码的人真的很厉害(侵删
- elementui树状菜单tree_Java + Element-UI 实现简单的树形菜单
weixin_39682301
一、简单入门级树形菜单实现(纯后台逻辑)1、简介(1)开发环境IDEA+JDK1.8+mysql1.8SpringBoot2.2.6+mybatis-plus此处仅后台开发(返回json数据),前台页面展示后续会讲解。(2)数据表如下,仅供参考,可以添加修改时间、创建时间、逻辑删除等字段。DROPDATABASEIFEXISTStest;CREATEDATABASEtest;USEtest;/*用
- 不拆MongoDB解决MongoSocketOpenException: Exception opening socket
zhutoutoutousan
mongodb数据库javaspringboot
问题起源玩JavaSpringBoot全栈项目带有MongoDB,在springboot/src/main/resources/application.properties里边定义了mongodb的database和url,在springboot项目起的时候报错com.mongodb.MongoSocketOpenException:Exceptionopeningsocketatcom.mong
- 2025春招,Spring 面试题汇总
springjava面试
大家好,我是V哥。2025年金三银四春招马上进入白热化,兄弟们在即将到来的假期,除了吃喝欢乐过新年,想年后跳槽升职的兄弟也要做好充分的准备,要相信,机会永远只留给有准备的人。以下是一份2025年春招Spring面试题汇总,送给大家,关于Java基础相关的请移步V哥上一篇文章《【长文收藏】2025备战金三银四Java大厂面试题》:Spring基础部分一、Spring基础1.什么是Spring框架?答
- 【檀越剑指大厂--RocketMQ】RocketMQ运维篇
Kwan的解忧杂货铺@新空间代码工作室
s总檀越剑指大厂java-rocketmqrocketmq运维
欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kuan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,并发编程redis,kafka,Spring,微服务,Netty等常用开发工具系列:罗列常用的开发工具,如IDEA,M
- mongo db 链接问题
奔走的箱子
mongodbspringbootmongoDb
com.mongodb.MongoSocketOpenException:Exceptionopeningsocketatcom.mongodb.internal.connection.SocketStream.open(SocketStream.java:67)atcom.mongodb.internal.connection.InternalStreamConnection.open(Inte
- 解决:com.mongodb.MongoSocketOpenException: Exception opening socket
ppo_wu
BUGmongodb数据库springbootjava
背景springboot项目启动时,报错com.mongodb.MongoSocketOpenException:Exceptionopeningsocketatcom.mongodb.internal.connection.SocketStream.open(SocketStream.java:70)~[mongodb-driver-core-3.11.2.jar:na]atcom.mongod
- Spring 6 第6章——单元测试:Junit
qw949
Spring6spring单元测试junit
一、整合JUnit5在之前的测试方法中,几乎都能看到以下两行代码:ApplicationContextcontext=newClassPathXmlApplicationContext("xxx.xml");Xxxxxxx=context.getBean(Xxxx.class);这两行代码的作用是创建Spring容器,最终获取到对象,但是每次测试都需要重复编写针对上述问题,我们需要的是程序能自动帮
- Spring定时任务的fixedRate和fixedDelay两个属性以及开启多线程与线程池设置
家家小迷弟
workspringjavapython
1、定时注解以及多线程1.1、定时注解这里首先解释定时任务@Scheduled的两个属性fixedRate和fixedDelay,对于fixedDelay这个注解,就是等任务结束再开始计时,例如设置fixedDelay=5000,该方法执行需要2秒,那么再次执行的时间就是2秒+5秒=7秒,即在7秒后再次执行该任务。对于fixedRate注解我有个误解,例如设置fixedDelay=5000,我以为
- Spring定时任务 fixedDelay和fixedRate
杀手143
springjavasql
Spring定时任务fixedDelay和fixedRate的区别fixedDelay的时间间隔是从上一次执行完成开始算。fixedRate的时间间隔是从上一次执行开始算,自然时间上是固定的。如果执行时间超过间隔,则上次执行完成后下次立即进行。例:1每5分钟执行一次,每次执行1分钟fixedDelayfixedRate第1次00第2次65第3次125例:2每5分钟执行一次,每次执行10分钟fixe
- Spring---定时任务@Schedule的使用,及其参数使用yml或properties配置值
知北行
JavaSpringspringjava后端
1.使用1.在spring的启动类上添加允许定时任务注解@EnableScheduling2.在要定时执行的方法上添加注解:@Scheduled(fixedRate=5000)//任务每隔5秒执行一次或@Scheduled(fixDelay=5000)//任务每隔5秒执行一次(上一次任务结束5秒后,再执行下一次任务)或者可以使用cron表达式来完成更复杂的定时要求.2.使用yml或properti
- redis 布隆过滤器 BloomFilter
稚辉君.MCA_P8_Java
高可用Kubernetes集群redis
文章目录1、什么是布隆过滤器?1.1工作原理1.2布隆过滤器的优点1.3缺点2、布隆过滤器的使用场景3、布隆过滤器的原理3.1布隆过滤器的数据结构3.2初始化阶3.3插入元素过程3.4查询元素是否存在3.5元素删除3.6扩容4、SpringBoot整合布隆过滤器4.1技术选型4.2依赖4.3配置布隆过滤器相关参数4.4布隆过滤器工具类4.5业务操作4.5.1基于JVM本地缓存的BloomFilte
- Spring-boot定时任务,注解@Scheduled的参数说明
旷野孤星
个人笔记学习记录后端框架JAVASpring-BootSpring@ScheduledJava
关于Scheduled的参数1.corn2.fixedDelay3.fixedDelayString4.fixedRate5.fixedRateString6.initialDelay7.initialDelayString8.zone总共有八种参数类型,对于第一种类型一般使用就最熟悉了,是可以控制方法在任意的年月日时分秒上执行,同时不断循环。比较简单,网上的说明也比较多,就不做解释。fixedR
- MongoDB 常见使用
愿许浪尽天涯
运维mongodbnosql数据库运维原力计划
MongoDB常见使用一、MongoDB安全配置二、索引配置三、慢查询一、MongoDB安全配置因为博主前面写过MongoDB安装教程,所以这里便不再进行安装(未安装的可以看:MongoDB使用介绍)1)创建MongoDB管理员用户[root@MongoDB~]#mongo192.168.1.1:27017useadmindb.createUser({user:"admin",pwd:"12312
- MongoDB 创建数据库
张飞光
数据库mongodboracle
在MongoDB中,数据库的创建是一个简单的过程,当你首次向MongoDB中插入数据时,如果数据库不存在,MongoDB会自动创建它。我们只需选择一个数据库名称,并开始向其中插入文档即可。语法当你使用use命令来指定一个数据库时,如果该数据库不存在,MongoDB将自动创建它。MongoDB创建数据库的语法格式如下:useDATABASE_NAME如果数据库不存在,则创建数据库,否则切换到指定数据
- MongoDB权限讲解
只想按时下班
mongodbmongodb数据库
文章目录MongoDB权限说明普通用户管理用户授权用户超级管理员创建管理用户mongdb库创建读写用户一个用户多个权限MongoDB权限说明权限误区:并不是说下面的排序就证明权限越来越大除了readWrite权限用户外(root权限用户也包括),其它用户都不具备对数据库的写入权限,除read权限外,其它用户都不具备对数据库中的读权限,每个权限的功能各不一样(除root外)普通用户普通用户只是拥有下
- mongoDB操作数据库常见指令
我只会ctrl cv
mongodb指令mongodb
mongoDB操作数据库常见指令查询库showdbs创建库/切换库use`tableName`查看当前use的标下有哪些表showcollections//和db.getCollectionNames()类似给指定的tableName添加数据db.tableName.insert({"name":"jsonData"})//可以使用for循环创建数据for(vari=0;i=23并且age<=26
- MongoDB的聚合&MongoDB的索引
小强同志
MongoDbmongodbnosql数据库
一、mongoDB的聚合操作知识点:pipeline聚合mapRedurce聚合pipeline与mapRedurce比较pipeline速度快,但只能运行在单机上,适合数据量小的实时聚合操作。mapRedurce可以运行在分布式节点,适适大数量并且复杂的聚合分析操作pipeline聚合pipeline聚合其特性是运行速度快,只能运行在单机上,并且对资源的使用有一定限制如下:单个的聚合操作耗费的内
- Spring 3自定义注解与格式化器的深度实践
t0_54manong
springpython数据库个人开发
在Spring框架中,格式化器(Formatter)和注解(Annotation)是处理数据格式化和验证的强大工具。通过将注解与格式化器绑定,我们可以在字段级别灵活地定义数据的格式化规则。本文将通过一个完整的示例,展示如何创建自定义注解、格式化器,并将它们绑定到Spring的AnnotationFormatterFactory中,实现字段级别的数据格式化。一、背景与需求在开发Web应用时,我们经常
- MongoDB 索引 聚合
许墨の小蝴蝶
mongodb数据库nosql
createIndex()方法MongoDB使用createIndex()方法来创建索引。>db.collection.createIndex(keys,options)>db.col.createIndex({"title":1})语法中Key值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。createIndex()方法中你也可以设置使用多个字段创建索引(
- 矩阵求逆(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到设计文档中,那将会是一件非常痛苦的事情。