[工具书]Java学习笔记

1. 命令行Java -jar参数

-D= : set a system property 设置系统属性。

参数名称用途说明
server.port服务端口可以用这个方式,启动多个jar程序,在不同的端口提供服务
file.encoding文件编码指定文件在页面中使用何种编码显示

案例
java -Dfile.encoding=utf-8 -Dserver.port=8090 -jar xxxxx.jar

2. Java特性

2.1 注解

2.1.1 前言

注解现在在SpringBoot中非常好用,在Spring1.x时代,还没出现注解,需要大量xml配置文件并在内部编写大量bean标签。从Spring 2.X开始spring将xml配置中的对象ioc过程转化成了注解。Spring Boot之所以能够轻松地实现应用的创建及与其他框架快速集成,最核心的原因就在于它极大地简化了项目的配置,最大化地实现了“约定大于配置”的原则。

2.1.2 注解扫盲

1.注解是什么?

注解是一种特殊的接口,如果你把注解的class拿去反编译就会知道这一点。我们写注解,本质还是在写一个接口,这是一个特殊的接口。

2.注解里面有什么?

因为注解是一个接口,所以里面可以写方法。当然,是抽象方法。只不过,你的方法名要看起来像是一个属性名。比如,你不要写什么getValue,而应该就写value,这些方法名是注解的属性。

记住这一点,真的很重要,可以让你少走很多弯路。

3.注解什么时候起作用?

注解编写完毕后,可以打在类上,属性上,还有方法上。你需要通过target元注解来声明到底要打在什么地方。然后,你必须要有个地方去读取这个注解,比如springboot框架,在框架里面必然有地方去解析@Controller。

在你启动项目的时候,springboot就去寻找哪些class打了@Controller注解,找到一个就收藏一个,自动帮你new好了存起来。

记住,注解的意义就是在某个时刻被读取,然后做一些事情。如果你自己写了一个注解,却没有任何读取的地方,那你就是在耍流氓。好好的一个类,被你冷不丁打一个@MyAnnotation注解,却没有任何解析的地方,你觉得类能开心吗?

4.保留策略

保留策略是打在注解上的注解,就是告诉你这个注解可以保存到什么时候,我们自己写注解一般是为了方便开发,所以要保留到运行时。

【2.1.2 注解扫盲】出处,摘抄于CSDN博主「上官义飞」的原创文章.
原文链接:https://blog.csdn.net/weixin_36257554/article/details/114752556

2.1.3 用到的注解及说明

注解说明
@Autowired【官方说明】 完成自动装配的工作
【用途】 使用Spring时,通过Spring注入的Bean一般都被定义成private,并且要有getter和setter方法,显得比较繁琐,增加了代码量,而且有时会搞忘造成错误。可以使用@Autowired注解来减少代码量。
在变量上添加@Autowired注解,可去掉相应的getter和setter方法.
另外还有针对构造器和setter方法的注入,还未了解原理,迟些添加
@Controller【官方说明】声明这是一个控制类
【自用备注】相当于之前的implements Controller,详情见特性比较
@RestController【官方说明】声明这是一个控制类
【自用备注】相当于之前的implements Controller,详情见特性比较
@Component【官方说明】实现bean的注入
【自用备注】当作是一个最普通的注解,其他的注解都不是了,好歹要声明这个是Spring可以认得出来的bean吧,那就放一个component吧
@Slf4j【官方说明】用作日志输出
【自用备注】替代这个语句:
private final Logger logger = LoggerFactory.getLogger(当前类名.class);
需要引用以下包才能使用:
import lombok.extern.slf4j.Slf4j;
@TableName【自用备注】mybatis-plus中的注解,见比较
@Table【自用备注】Hibernate中的注解,见比较
@ApiOperation【自用备注】是swagger的注解,见详情
@ApiImplicitParams【自用备注】是swagger的注解,见详情
@DubboReference【自用备注】是dubbo的注解,见详情
@DubboService【自用备注】是dubbo的注解,见详情

3. 一些特性及比较

3.1 @RestController 与 @Controller 注解区别

@RestController

  1. 一般用于接口 或 前后端分离
  2. Controller中的方法无法返回jsp,html页面
  3. 返回的内容就是return 里的内容。
    总述,RestController就是专门给前后端或接口使用的,端和端之间传输的数据内容,可返回XML,JSon等装载的信息。

@Controller

  1. 最早的controller,用于返回页面,使用return "MyController/index"可以返回对应目录下的页面
  2. 配合@ResponseBody可以返回数据,可以使用return “{xxxx}”;返回JSon或XML而非指定页面

总结:
@RestController 在 Spring MVC 中就是 @Controller 和 @ResponseBody 注解的集合。
@RestController 注解是从 Spring 4.0 版本开始添加进来的,主要用于更加方便的构建 RESTful Web 服务。
所以可以用 @Controller + @ResponseBody 替代@RestController

3.2 @Table VS @TableName

其实比较很简单,一个是属于mybatis的,一个是Hibernate的。作用是一样的就是数据库表映射,不要用混了就行。

3.3 @ApiOperation, @ApiImplicitParams

Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目
实现了与SpingMVC框架的无缝集成功能,方便生成spring restful风格的接口文档,

引用:
import io.swagger.annotations.ApiOperation;

@ApiOperation(value="用户登录",notes="这是给用户登录用的")
@ApiImplicitParams({
        @ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
        @ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
        @ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer")
})
@PostMapping("/login")
public AjaxResult login(@RequestParam String mobile, @RequestParam String password,
                        @RequestParam Integer age){

3.3 @DubboReference, @DubboService

在所作的项目中,发现在代码调用里接口,未指明implement的类,觉得很奇怪,问了同事

9 学习资料

https://www.cnblogs.com/xifengxiaoma/p/11116330.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《Thinking in Java》是一本经典的Java编程入门教材,通过阅读该书可以系统地学习Java编程的基础知识和高级概念。阅读过程中,我结合自己的学习体验和实践,进行了详细的学习笔记。 首先,该书从基础语法开始介绍,包括数据类型、控制语句、数组等。对于初学者来说,这些基础知识是最基本的,通过书中的示例代码和解析,我能够更好地理解这些概念和语法规则。 其次,书中对面向对象编程进行了深入的讲解。通过学习面向对象的思想,我明白了类、对象、继承、多态等概念的含义和使用方法。同时,书中还讲解了接口、内部类、异常处理等较为高级的概念,极大地拓宽了我的Java知识面。 另外,该书还介绍了Java的常见类库和工具,如字符串操作、集合框架、输入输出、线程等。这些内容对于实际开发非常有用,而且书中的示例代码也能帮助我更好地理解和应用这些类库和工具。 此外,该书通过大量的实例和案例,生动地展示了Java编程的实战应用。这些实例涵盖了各种不同的应用场景,从简单的程序到复杂的项目,都有所涉及。通过分析这些实例,我不仅可以学习到实际编程的技巧,还能提高自己的解决问题的能力。 总的来说,读完《Thinking in Java》后,我对Java编程有了更深入的理解和掌握。通过学习笔记的整理,我不仅复习了各个知识点,还加深了对这些概念的理解。希望这份学习笔记能够帮助到其他想要学习Java的同学,让他们能够更快地入门和掌握这门编程语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值