@SuppressWarnings
该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。 如果不想看到代码中的警告,可以在类或方法上注释@SuppressWarnings,就不会看到该警告 @SuppressWarnings(“unused”)
未使用的变量@SuppressWarnings("rawtypes")
是说传参时也要传递带泛型的参数@SuppressWarnings(“unchecked”)
未检查的转化,如集合没有指定类型@SuppressWarnings(“unused”)
未使用的变量
public/protected/private
public:对所有人开放 protected:朋友(同一个package下)和子女可以访问 private:只有自己能访问
static
在程序中,任何变量或者代码都是在程序编译时由其中分配的内存来存储的,所谓静态就是指在编译后分配的内存会一直存在,直到程序退出才会释放这个空间 目的:让用户不用实例化对象就可以引用其成员
class MM () {
static int a = 1 ;
int b = 2 ;
}
MM.a;
MM mm = new MM();
mm.b;
TODO注释用法
类似于书签,记下待办的工作 找出TODO 的快捷键:Ctrl + K
Assert.notNull(Object)
校验对象是否为空,若为空,则回滚,例如:Assert.notNull(User)
public static void notNull (Object object ) {
notNull(object , "[Assertion failed] - this argument is required; it must not be null" );
}
工作流异步消息
问题描述:task监听事件@Event(types = {ActivitiEventType.TASK_CREATED})
中,任务还没有完全完成(committing),但是消息已经发出去了,系统会报错 解决方案:在监听事件中在放个监听器,用于监听事件committed,再将发送消息代码放入监听器中,代码如下:
Context.getCommandContext().getTransactionContext()
.addTransactionListener(TransactionState.COMMITTED, new TransactionListener() {
@Override
public void execute (CommandContext commandContext) {
messageBus.send(Message.Builder.with("workflowTask" , messageTask).build());
}
}
final
final为关键字,表示这个变量赋予的值是不可改变的,即是个常量
FastJson
速度快,功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
public static final Object parse (String text);
*public static final JSONObject parseObject (String text);
// 把JSON文本parse为JavaBean
*public static final T parseObject (String text, Class clazz);
*public static final JSONArray parseArray (String text);
*public static final List parseArray (String text, Class clazz);
*public static final String toJSONString (Object object);
public static final String toJSONString (Object object, boolean prettyFormat);
public static final Object toJSON (Object javaObject);
SQL迭代
如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
<select id="foreachTest" resultType="User" >
select * from t_user where id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")" >
#{item}
</foreach >
</select >
如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
<select id="foreach2Test" resultType="Blog" >
select * from t_blog where id in
<foreach collection="array" index="index" item="item" open="(" separator="," close=")" >
#{item}
</foreach >
</select >
如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了.当然单参数也可以封装成map,实际上如果你在传入参数的时候,在MyBatis里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key
<select id="foreach3Test" resultType="Blog" >
select * from t_blog where title like "%" #{title}"%" and id in
<foreach collection="ids" index="index" item="item" open="(" separator="," close=")" >
#{item}
</foreach >
</select >
<delete id="deleteByIds" >
DELETE FROM km_node
WHERE ID in
<foreach item ="id" collection="ids" open ="(" separator="," close =")" >
</foreach>
</delete >
<insert id ="insertAttachment" >
INSERT INTO KM_ATTACHMENT (FILE_ID,KNOWLEDGE_ID )
<foreach item ="fileIds" collection ="array" index ="index" separator ="union all" >
SELECT #{fileIds,jdbcType=INTEGER},MAX(ID)FROM km_node
</foreach >
</insert >
SmartAs传参
@GET
@Path(value = "/getLandIncrease/{infoDate}" )
@Operation(code = Operation.READ, desc = Operation.READ_DESC)
public double getLandIncrease (@PathParam("infoDate" ) String infoDate) {
...
}
Resource.get("services/nrms/decision/land/getLandInctease/{0}" .format(year),(land)=>{
...
});
删除日期2016-11-29后面的时间00:00:00
{
title: '上传日期' ,
dataIndex: 'editDate' ,
render: function (value ) {
if (value != null ) {
return value .split(" " )[0 ];
}
}
}
split函数是分割字符串数组,split(” “)是以空格“ ”为分割点,将2016-08-29 00:00:00分割成两个字符串,[0]是取第一个,即2016-08-29
字符串处理:substring_index和concat
例子:str = www.google.com
substring_index(str,’.’,1) 结果是:www substring_index(str,’.’,2) 结果是:www.google 也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容 相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容 如:substring_index(str,’.’,-2) 结果为:google.com 有人会为,如果我呀中间的的google怎么办?从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边: substring_index(substring_index(str,’.’,-2),‘.’,1);
substring_index(str ,delim,count )
concat ('wo' ,'ai' ,'ni' )
Class和Class
Repository
该注解用于将数据访问层(Dao层)的类标注为Spring Bean 为什么 @Repository 只能标注在 DAO 类上呢?这是因为该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。
service异步执行顺序
transSelect: function transSelect (value) {
Resource.get("services/security/user/list" ,(users) => {
语句1 ;
}
语句2 ;
},
先执行service,再执行语句2,最后执行语句1
ftl文件中加js服务代码
<script >
(function ($) {
var Resource = Smart.Resource;
var intervalTime = 300000 ;
Resource.get("services/record/Alarm/getIntervalTimeByDictKey/{0}" .format("AlarmCount" ),function (data) {
if (data.length > 0 ) {
intervalTime = data[0 ].dictval;
}
var timeId = setInterval(check,intervalTime);
});
</script >