定义概念

序列化和反序列化:

序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

git小乌龟更新仓库项目:

拉取--->提交--->推送(拉取出现冲突时:根据提示找到冲突的文件,还原一下,然后再拉取,成功拉取后,把更改的内容再写进去,然后再(拉取)提交,推送)

optional:详解

Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

Optional 类的引入很好的解决空指针异常。

id生成策略:

//hibernate的uuid
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid")

//id自动增长
@GeneratedValue(strategy = GenerationType.IDENTITY)

为什么用注解不用“new”?

@Resource(name = "manImpl") private Human human; 与 private Human human = new ManImpl(); 
这两种形式有区别么? 不都是为了在方法中是使用human.method();而引入一个对象么?

你自己new的对象, 你不清楚什么时候就会被回收了..而用注解,则是将这个对象交给spring的容器管理.
不需要为对象的创建和销毁而考虑.. 这也是使用spring框架的主要原因

@runWith注解:

@RunWith就是一个运行器

@RunWith(JUnit4.class)就是指用JUnit4来运行

@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境

@RunWith(Suite.class)的话就是一套测试集合,

Spring中的注解:

@Autowired 注释:它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

@controller 控制器(注入服务)
    用于标注控制层,相当于struts中的action层

@service 服务(注入dao)
    用于标注服务层,主要用来进行业务的逻辑处理

@repository(实现dao访问)
    用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.

@component (把普通pojo实例化到spring容器中,相当于配置文件中的 
    <bean id="" class=""/>)
    泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我            
    们就可以使用@Component来标注这个类。

实体类中注释:

*@Table 标注类对应的表
    若表名和类型相同时,省略@Table,比如类Users 和表 users;
    若不相同时,必须有@Table,并设置name,为该类对应的表名。@Table(name="users")

* @Entity 标注实体

* @Id 标注id

* @Transient 标注该属性不做与表的映射(原因:可能表中没有该属性对应的字段)
    有该注解,在执行sql语句时,就不会出现该属性,否则会有,若表中没有该字段则会报错

* @Basic 默认所有属性都有该注解(主键需要单独使用@Id),所以可以省略
    该注解可以放在属性上,也可以放在对应的getter方法上。
    注意:要么统一将@Basic放在属性上,要么统一放在对应的getter方法上。(一般都放在属性上,可读性比                        
    较好)

* @Column 类中属性名和表中对应字段名不相同时,会使用该注解,指明在类中对应的字段

* @Column(name="对应的表中字段名")

Spring Boot定时任务注解:

@EnableScheduling
//创建定时任务

//在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务, 
  //实现每过5秒输出一下当前时间。

//在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置
 

@SpringBootApplication

@EnableScheduling

public class Application {

    public static void main(String[] args) {

        SpringApplication.run(Application.class, args);

    }

}

//创建定时任务实现类
@Component

public class ScheduledTasks {

private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedRate = 5000)

    public void reportCurrentTime() {

        System.out.println("现在时间:" + dateFormat.format(new Date()));

    }

}

运行程序,控制台中可以看到类似如下输出,定时任务开始正常运作了。
2018-04-15 10:40:04.073 INFO 1688 --- [ main] com.cicoding.Application : Started Application in 1.433 seconds (JVM running for 1.967) 现在时间:10:40:09 现在时间:10:40:14 现在时间:10:40:19 现在时间:10:40:24 现在时间:10:40:29522 现在时间:10:40:34

关于上述的简单入门示例也可以参见官方的Scheduling Tasks

@Scheduled详解

在上面的入门例子中,使用了@Scheduled(fixedRate = 5000) 注解来定义每过5秒执行的任务,对于@Scheduled的使用可以总结如下几种方式:

@Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行
@Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行
@Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次
@Scheduled(cron="*/5 * * * * *") :通过cron表达式定义规则

SpringBoot-@PathVariable:详解

 @RequestMapping("/del/{userId}")
    public String del(@PathVariable String userId){
        userService.del(userId);
        return "redirect:/list";
    }

@PathVariable:获取URL变量值赋值给注解后面的变量

java中trim()方法:

trim()方法返回调用字符串对象的一个副本,但是所有起始和结尾的空格都被删除了,

例子如下:

String s = " Hello World ".trim();
s = "Hello World";
//就是把"Hello World"放入s中

StringUtils中 isNotEmpty 和isNotBlank的区别【java字符串判空】

isNotEmpty(str)等价于 str != null && str.length > 0
isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length > 0
同理
isEmpty 等价于 str == null || str.length == 0
isBlank  等价于 str == null || str.length == 0 || str.trim().length == 0

str.length > 0 && str.trim().length > 0  --->   str.length > 0

<form> 标签的 enctype 属性

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。

默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。

语法

<form enctype="value">

属性值

描述
application/x-www-form-urlencoded 在发送前编码所有字符(默认)
multipart/form-data

不对字符编码。

在使用包含文件上传控件的表单时,必须使用该值。

text/plain 空格转换为 "+" 加号,但不对特殊字符编码。

清空数据库表数据,并重置主键/自动增长列计数器

语法(速度快效率高)

truncate table 表名;

js里引用绝对路径

1.先在jsp里定义

<script>
    var context_path = '${pageContext.request.contextPath}';
</script>

2.再在js里引用

 url: context_path + '/xxx/xxx.do',
原文地址:https://www.cnblogs.com/wjup/p/10576087.html