一、元注解
注解作用备注@Target说明了Annotation所修饰的对象范围@Target(ElementType.TYPE)1.CONSTRUCTOR:用于描述构造器2.FIELD:用于描述域3.LOCAL_VARIABLE:用于描述局部变量4.METHOD:用于描述方法5.PACKAGE:用于描述包6.PARAMETER:用于描述参数7.TYPE:用于描述类、接口(包括注解类型) 或enum声明@Retention定义被它所注解的注解保留多久@Retention(RetentionPolicy.RUNTIME)1.SOURCE:在源文件中有效(即源文件保留)2.CLASS:在class文件中有效(即class保留)3.RUNTIME:在运行时有效(即运行时保留)@Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员。@Inherited被标注的类型是被继承的如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。
二、Spring
1、Spring MVC
注解作用备注@ResponseBody该方法的返回结果直接写入response body中一般在异步获取数据时使用,用于构建RESTful的api。在使用@RequestMapping后,返回值通常解析为跳转路径,加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@Responsebody后,会直接返回json数据@Controller定义控制器类在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。@RestController标注控制层组件@ResponseBody和@Controller的合集。表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。@RequestMapping表示该控制器处理所有“/path”的URL请求该注解有六个属性: params:指定request中必须包含某些参数值是,才让该方法处理。 headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。 value:指定请求的实际地址,指定的地址可以是URI Template 模式 method:指定请求的method类型, GET、POST、PUT、DELETE等 consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html; produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回@RequestParam用在方法的参数前面。@PathVariable获取参数。路径变量。@RequestHeader把Request请求header部分的值绑定到方法的参数上public void displayHeader(@RequestHeader(“Accept-Encoding”) String encoding) { }@CookieValue把Request header中cookie的值绑定到方法的参数上public void displayHeaderInfo(@CookieValue(“JSESSIONID”) String cookie) { //… } 即把JSESSIONID的值绑定到参数cookie上@RequestBody绑定到相应的bean上的该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等
2、Spring Boot
注解作用备注@SpringBootApplication申明让spring boot自动给程序进行必要的配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置@ComponentScan扫描到Configuration类并把它加入到程序上下文组件扫描,可自动发现和装配一些Bean。表示将该类自动发现扫描组件。个人理解相当于,如果扫描到有@Component、@Controller、@Service等这些注解的类,并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。@Configuration等同于spring的XML配置文件@EnableAutoConfigurationSpringBoot自动配置(auto-configuration)尝试根据你添加的jar依赖自动配置你的Spring应用。例如,如果你的classpath下存在HSQLDB,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库”。你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的排除属性来禁用它们。@Autowired自动导入依赖的beanbyType自动注入@Resource(name=”name”,type=”type”)自动导入依赖的bean默认按 byName自动注入@Component泛指组件当组件不好归类的时候,我们可以使用这个注解进行标注@controller控制器@service服务@Repository可以确保DAO或者repositories提供异常转译修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。@Bean等价于XML中配置的bean放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。@Cacheable支持缓存的方法,Spring调用后将返回值缓存可以标记在一个方法上,也可以标记在一个类上,Spring在缓存方法的返回值时是以键值对进行缓存的,值就是方法的返回结果,至于键的话,Spring又支持两种策略,默认策略和自定义策略,下次利用同样的参数方法时从缓存中获取结果不再次执行该方法@CachePut声明一个方法支持缓存功能与@Cacheable不同的是使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。@CacheEvict用来标注在需要清除缓存元素的方法或类上的@EnableCaching触发一个post processor,扫描spring bean,查看是否已经存在注解对应的缓存。如果找到了,就会自动创建一个代理拦截方法调用,使用缓存的bean执行处理。在一个配置类(@Configuration)上使用@EnableCaching注解
3、Spring Cloud
(1)注解
注解作用备注@EnableDiscoveryClient能够让注册中心能够发现,扫描到该服务可以是其他注册中心。@EnableEurekaClient能够让注册中心能够发现,扫描到该服务只适用于Eureka作为注册中心
(2)配置参数
配置参数默认值说明服务注册中心配置Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBeaneureka.server.enable-self-preservationfalse关闭注册中心的保护机制,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者,如果关闭服务注册中心将不可用的实例正确剔除服务实例类配置Bean类:org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBeaneureka.instance.prefer-ip-addressfalse不使用主机名来定义注册中心的地址,而使用IP地址的形式,如果设置了eureka.instance.ip-address 属性,则使用该属性配置的IP,否则自动获取除环路IP外的第一个IP地址eureka.instance.ip-addressIP地址eureka.instance.hostname设置当前实例的主机名称eureka.instance.appname服务名,默认取 spring.application.name 配置值,如果没有则为 unknowneureka.instance.lease-renewal-interval-in-seconds30定义服务续约任务(心跳)的调用间隔,单位:秒eureka.instance.lease-expiration-duration-in-seconds90定义服务失效的时间,单位:秒eureka.instance.status-page-url-path/info状态页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置eureka.instance.status-page-url状态页面的URL,绝对路径eureka.instance.health-check-url-path/health健康检查页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置eureka.instance.health-check-url健康检查页面的URL,绝对路径服务注册类配置Bean类:org.springframework.cloud.netflix.eureka.EurekaClientConfigBeaneureka.client.service-url.指定服务注册中心地址,类型为 HashMap,并设置有一组默认值,默认的Key为 defaultZone;默认的Value为 http://localhost:8761/eureka ,如果服务注册中心为高可用集群时,多个注册中心地址以逗号分隔。如果服务注册中心加入了安全验证,这里配置的地址格式为: http://:@localhost:8761/eureka 其中 为安全校验的用户名; 为该用户的密码eureka.client.fetch-registerytrue检索服务eureka.client.registery-fetch-interval-seconds30从Eureka服务器端获取注册信息的间隔时间,单位:秒eureka.client.register-with-eurekatrue启动服务注册eureka.client.eureka-server-connect-timeout-seconds5连接 Eureka Server 的超时时间,单位:秒eureka.client.eureka-server-read-timeout-seconds8读取 Eureka Server 信息的超时时间,单位:秒eureka.client.filter-only-up-instancestrue获取实例时是否过滤,只保留UP状态的实例eureka.client.eureka-connection-idle-timeout-seconds30Eureka 服务端连接空闲关闭时间,单位:秒eureka.client.eureka-server-total-connections200从Eureka 客户端到所有Eureka服务端的连接总数eureka.client.eureka-server-total-connections-per-host50从Eureka客户端到每个Eureka服务主机的连接总数
3、Aop
注解作用备注@Aspect把当前类标识为一个切面供容器读取@Pointcut切点@Around环绕增强@AfterReturning后置增强,相当于AfterReturningAdvice,方法正常退出时执行@Before前置增强方法@AfterThrowing异常抛出增强@Afterfinal增强,不管是抛出异常或者正常退出都会执行
三、Mybatis
1、mapper
注解作用备注@MapperScan扫描指定包中的接口注解只会扫描包中的接口,不会扫描类,包下面的所有接口在编译之后都会生成相应的实现类@Mapper在编译之后会生成相应的接口实现类byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。
2、entity
注解作用备注@Entity表明这是一个实体类@Table(name=”“)如果表名和实体类名相同的话,@Table可以省略@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic。@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式@JsonIgnorejson序列化时将Java bean中的一些属性忽略掉序列化和反序列化都受影响。@Id该属性为主键。@GeneratedValue表示主键生成策略可以为Auto、IDENTITY、native等@Column。如果字段名与列名相同,则可以省略name属性:定义了被标注字段在数据库表中所对应字段的名称unique属性:表示该字段是否为唯一标识nullable属性:表示该字段是否可以为null值,默认为truetable属性:定义了包含当前字段的表名length属性:表示字段的长度,当字段的类型为varchar时才有效,默认255个字符columnDefinition属性: 表示该字段在数据库中的实际类型.通常 ORM 框架可以根据属性类型自动判断数据库中字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是DATE,TIME还是TIMESTAMP.此外,String的默认映射类型为VARCHAR,如果要将 String 类型映射到特定数据库的 BLOB 或TEXT字段类型.precision属性和scale属性:precision属性和scale属性一起表示精度,当字段类型为double时,precision表示数值的总长度,scale表示小数点所占的位数 具体如下: 1.double类型将在数据库中映射为double类型,precision和scale属性无效 2.double类型若在columnDefinition属性中指定数字类型为decimal并指定精度,则最终以columnDefinition为准 3.BigDecimal类型在数据库中映射为decimal类型,precision和scale属性有效 4.precision和scale属性只在BigDecimal类型中有效
四、Lombok
注解作用备注@Setter注解在属性上,为属性提供 setting 方法@Getter注解在属性上;为属性提供 getting 方法@Data注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法@Log4j2注解在类上;为类提供一个 属性名为log 的 log4j 日志对象@Sl4j@NoArgsConstructor注解在类上;为类提供一个无参的构造方法@AllArgsConstructor注解在类上;为类提供一个全参的构造方法@EqualsAndHashCode默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。当使用@Data注解时,则有了@EqualsAndHashCode注解,那么就会在此类中存在equals(Object other) 和 hashCode()方法,且不会使用父类的属性,这就导致了可能的问题。比如,有多个类有相同的部分属性,把它们定义到父类中,恰好id(数据库主键)也在父类中,那么就会存在部分对象在比较时,它们并不相等,却因为lombok自动生成的equals(Object other) 和 hashCode()方法判定为相等,从而导致出错。@toString生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割@RequiredArgsConstructor部分参数构造器@NonNull注解在属性上,如果注解了,就必须不能为Null@val注解在属性上,如果注解了,就是设置为final类型
五、Swagger
注解作用备注@Api修饰整个类,描述Controller的作用@ApiOperation描述一个类的一个方法,或者说一个接口@ApiParam单个参数描述@ApiModel用对象来接收参数@ApiProperty用对象接收参数时,描述对象的一个字段@ApiResponseHTTP响应其中1个描述@ApiResponsesHTTP响应整体描述@ApiIgnore使用该注解忽略这个API@ApiError发生错误返回的信息@ApiImplicitParam一个请求参数@ApiImplicitParams多个请求参数
六、Linux
1、文件(夹)
命令作用备注pwd查看当前所在目录ls -a查看目录下文件ll查看目录下文件以列表形式显示cd打开目录mkdir创建文件夹rm删除-f :就是force的意思,忽略不存在的文件,不会出现警告消息 -i :互动模式,在删除前会询问用户是否操作 -r :递归删除,最常用于目录删除,它是一个非常危险的参数cp复制文件-a :将文件的特性一起复制 -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份 -i :若目标文件已经存在时,在覆盖时会先询问操作的进行 -r :递归持续复制,用于目录的复制行为 -u :目标文件与源文件有差异时才会复制mv修改文件名、移动文件tar压缩解压-c :新建打包文件 -t :查看打包文件的内容含有哪些文件名 -x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中 -j :通过bzip2的支持进行压缩/解压缩 -z :通过gzip的支持进行压缩/解压缩 -v :在压缩/解压缩过程中,将正在处理的文件名显示出来 -f filename :filename为要处理的文件 -C dir :指定压缩/解压缩的目录dir压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称 查询:tar -jtv -f filename.tar.bz2 解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
2、编辑文件
命令作用备注vi打开文件i进入编辑模式Esc退出编辑模式:进入命令模式q!退出但不保存wq或x退出保存w保存
3、进程
命令作用备注ps显示运行的进程-A :所有的进程均显示出来 -a :不与terminal有关的所有进程 -u :有效用户的相关进程 -x :一般与a参数一起使用,可列出较完整的信息 -l :较长,较详细地将PID的信息列出kill终止进程free显示系统中空闲的、已用的物理内存等-b 以Byte为单位显示内存使用情况。 -k 以KB为单位显示内存使用情况。 -m 以MB为单位显示内存使用情况。 -g 以GB为单位显示内存使用情况。 -o 不显示缓冲区调节列。 -s<间隔秒数> 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息。
4、权限
命令作用备注chmodchmod [-R] xyz 文件或目录 -R:进行递归的持续更改,即连同子目录下的所有文件都会更改#同时,chmod还可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改,编号是各种权限的数字代码 chmod 0755 file # 把file的文件权限改变为-rxwr-xr-x chmod g+w file # 向file的文件权限中加入用户组可写权限
转载请注明原文地址:https://ipadbbs.8miu.com/read-5661.html