• 定义概念


    序列化和反序列化:

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

    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',
  • 相关阅读:
    通过android XML 创建图形,降低对美工的依赖
    ViewPager学习之仿微信主界面
    Linux学习日志--文件搜索命令
    蓝桥杯 历届试题 小朋友排队 【树状数组】+【逆序数】
    操作系统——IO管理
    Mac和PC在工作中管理的对比(5)
    虚拟地址空间分配
    UVA 624 CD(DP + 01背包)
    【CSS】瀑布流布局的两种方式:传统多列浮动和绝对定位布局
    外煤关注:百度收购大部分糯米股份
  • 原文地址:https://www.cnblogs.com/wjup/p/10576087.html
Copyright © 2020-2023  润新知