关于 Java

1 篇文章 0 订阅
1 篇文章 0 订阅

build.gradle

properties

  • sourceCompatibility

    指定编译.java文件的jdk版本
  • targetCompatibility

    确保 class 文件与 targetCompatibility 指定版本 或者更新的java虚拟机兼容
  • archivesBaseName

    用于指定打包成 jar 文件时的文件名称
  • dependencies

    • implementationapi

    implementationapi 是取代之前的compile的

    • apicompile 是一样的效果
    • implementation 通过 implementation 依赖的库只能自己库本身访问 eg. A依赖B B依赖C 如果B依赖C是使用的 implementation 依赖 那么在A中是访问不到C中的方法的 如果需要访问 需要使用api依赖
    • compile only

    compile onlyprovided 效果是一样的 只在编译的时候有效 不参与打包

    • runtimeOnly

    runtimeOnlyapk 效果一样 只在打包的时候有效 编译不参与

    • testImplementation

    testImplementationtestCompile 效果一样 在单元测试和打包测试apk的时候有效

    • debugImplementation

    debugImplementationdebugCompile 效果相同 在debug模式下有效

    • releaseImplementation

    releaseImplementationreleaseCompile 效果相同 只在 release 模式和打包 release 包情况下有效

Spring Boot2 注解

  • @SpringBootApplication

    @SpringBootApplication 注解通常放在主类上 它隐式地为某些项定义了一个基本的“搜索包” eg. 如果您正在编写一个 JPA 应用程序 则使用 @SpringBootApplication 注解类的包来搜索 @Entity 项 使用根包也允许组件扫描只应用于您的项目
  • @Bean

    标注在方法上(返回某个实例的方法) 等价于 springxml 配置文件中的 作用是注册 bean 对象

    Tips:

    • @Bean 注解在返回实例的方法上 如果未通过 @Bean 指定 bean 的名称 则默认与标注的方法名相同
    • @Bean 注解默认作用域为单例 singleton 作用域 可通过 @Scope(“prototype”) 设置为原型作用域
    • 既然 @Bean 的作用是注册 bean 对象 那么完全可以使用 @Component @Controller @Service @Repository 等注解注册 bean(在需要注册的类上加注解)当然需要配置 @ComponentScan 注解进行自动扫描
    • 使用 @Bean 注解时 可以配置 initMethod()destoryMethod 方法 分别在实例化和销毁的时候执行 或者使用通过 @PostConstruct@PreDestroy 方法 实现初始化和销毁 bean 之前进行的操作

Spring 数据源配置

  • max-active

    最大连接数据库连接数 设置为0时 表示没有限制
  • max-idle

    最大等待连接中的数量 设置为0时 表示没有限制
  • max-wait

    最大等待秒数 单位为毫秒 超过时间会报出错误信息

Lomok

官方介绍

Project Lombok makes java a spicier language by adding ‘handlers’ that know how to build and compile simple, boilerplate-free, not-quite-java code.

通俗的说

Lombok 能以简单的注解形式来简化java代码 提高开发人员的开发效率
eg. 开发中经常需要写的 javabean 需要添加相应的 getter/setter 构造器 equals 等方法 而且需要维护
当属性多时会出现大量的 getter/setter 方法 这些显得很冗长也没有太多技术含量 一旦修改属性 就容易出现忘记修改对应方法的失误
然鹅 Lombok 能通过注解的方式 在编译时自动为属性生成构造器 getter/setter equals hashcode toString 方法

缺点

不支持多种参数构造器的重载

注解

  • @Data

    集合了 @ToString @EqualsAndHashCode @Getter/@Setter @RequiredArgsConstructor 的所有特性
    编译后会自动加上
    • 所有属性的 getset
    • toString
    • hashCode
    • equals
    • canEqual
    • 如为 final 属性 则不会为该属性生成 setter
  • @Getter / @Setter

    为相应的属性自动生成 Getter/Setter 方法
  • @NonNull

    生成一个非空的声明 可用于校验参数 能帮助避免空指针
  • @Cleanup

    自动调用 close() 方法
  • @EqualsAndHashCode

    会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成 equalshasCode 也能通过 exclude 注解来排除一些属性
  • @ToString

    生成一个 toString() 方法 默认情况下 会输出类名 所有属性(会按照属性定义顺序)用逗号来分割
  • @NoArgsConstructor

    无参构造器
  • @RequiredArgsConstructor

    部分参数构造器
  • @AllArgsConstructor

    全参构造器

JPA注解

@MappedSuperclass

用来标识父类

eg. 实体映射到数据库表时 需要映射的几个实体类中 有几个共同的字段名 eg. id creator create_time editor update_time remarks etc. 把这些属性抽象出来当成一个父类 然后再以不同的实体类来继承这个父类 使用 @MappedSuperclass 注解 将该实体类当成基类实体 它不会映射到数据库表 但继承它的子类实体在映射时会自动扫描该基类实体的映射属性 添加到子类实体的对应数据库表中

  • 标注为 @MappedSuperclass 的类将不是一个完整的实体类 他将不会映射到数据库表 但是他的属性都将映射到其子类的数据库字段中
  • 标注为 @MappedSuperclass 的类不能再标注 @Entity@Table 注解 也无需实现序列化接口

@EntityListeners

指定 Entity 或者 superclass 上的回调监听类 该注解可以用于 Entity 或者 superclass

@GeneratedValue

为一个实体生成一个唯一标识的主键 JPA 要求每一个实体 Entity 必须有且只有一个主键

properties
  • strategy
    • GenerationType.TABLE
      使用一个特定的数据库表格来保存主键
    • GenerationType.SEQUENCE
      根据底层数据库的序列来生成主键 条件是数据库支持序列
    • GenerationType.IDENTITY*
      主键由数据库自动生成(主要是自动增长型)
    • GenerationType.AUTO
      主键由程序控制
  • generator

    声明主键生成器的名称 对应于同名的主键生成器 @SequenceGenerator@TableGenerator

2019年4月17日22:28:50 暂时更新至此

Spring常用注解

@Service

  • 类带了 @Service 注解 将自动注册到 Spring 容器 不需要再在 applicationContext.xml 文件定义 bean
  • 用于标注业务层组件

@Controller

  • 用于标注控制层组件 如 struts 中的 action
  • 如果 @Controller 不指定value 则默认的 bean 名字就是这个类名首的字母小写 => @Controller(value = "ClassName")

@Repository

  • 用于标注数据访问组件 即DAO组件 对应数据访问层Bean

@Component

泛指组件 当组件不好归类的时候 我们可以使用这个注解进行标注

@AutoWired

自动把 bean 里面引用的对象的 setter/getter 方法省略 自动 set/get

@Service

@Service 注解是标注在实现类上的 @Service 是把 spring 容器中的 bean 进行实例化 也就是等同于 new 操作 只有实现类是可以进行 new 实例化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值