swagger 怎么去掉get delete_自学 Java 怎么入门?

给你推荐一个写得非常用心的Java基础教程:码邦主2020年最新的Java视频教程

ee5b681b4322ffdb585ab934ffca4b9d.png

这个教程将Java的入门基础知识贯穿在一个实例中,逐步深入,可以帮助你快速进入Java编程的世界。万事开头难,逐步跟着这个教程走一遍,对Java应该就会有一种入门的感觉了。然后再去学习更高级的主题,或者更深入地学习其中的某些知识点。

1、学习的基本路径

首先建立好开发环境非常重要,工欲善其事,必先利其器。做任何开发,首先就是要把这个环境准备好,之后就可以去做各种尝试,尝试过程中就能逐渐建立信心。初学者往往在环境配置中被各种预想不到的问题弄得很沮丧。

建立起来环境了,改变世界就靠你的代码了。学习一门编程语言没有太多的诀窍,你可能可以去找一本比较好的经典的入门书籍,现在网络上也有非常多的资料,图文或者视频都可以,根据个人喜好选择。最重要的练习,熟能生巧,在不断的练习中去加深自己对程序语言的理解。

接下来你需要了解这三个术语,叫SDK、API跟Lib,分别表示软件开发套件,应用编程接口和库。这三者之间其实有一定的联系,或者是交叉。总体来说,它们都是给我们提供的一些封装了底层功能的基础设施。做Java开发的话,这些东西通常体现为我们所经常说的“框架”。事实上要成为一个资深的Java开发者,对各种API和框架的学习,可能是花时间最多的一个地方。

当然你也不可能把所有API或者SDK种的所有内容完全弄懂。在软件开发中也有二八原则,少数的API能够胜任开发中的大部分场景。所以你只需要掌握这些关键部分,当在新场景下遇到不能解决的新问题时,再去查看帮助文档。所以帮助文档的阅读也是技术学习的一个关键因素。了解了基础原理之后一般就能上手开发了,帮助文档可以帮助你在实践中学习。

2、三个神器

三个神器,对于软件开发者来说非常重要。

  • 第一个Google,虽然因为各种原因的话有时候我们访问不了,但是这基本上是可以去寻找技术资料最好的方式。

  • 第二个是Github,之前提到过库的概念,Github就是一个可以找到大量第三方库的地方,那是别人给我们封装好的可以复用的代码。比方说造一辆汽车的话,我们经常不要自己造轮子,而Github上可以找到很多优质的轮子,这些轮子还是免费(代码都是开源的),我们应该尽量利用它们来拼装自己的汽车。

  • 第三个是StackOverflow网站,在这个问答网站上你遇到的几乎任何开发问题都能快速找到答案。

3、Java Web全栈开发的推荐学习内容

简单总结一下,大概包括下面这些内容。每一部分都可以细化成很多知识点,这只是一个粗略的罗列。把它当做技术地图就好了。

  • 开发环境的建立与项目管理:Eclipse、Maven和Git

  • Java编程基础:基本语法、面向对象特性、Java8新特性、更高级库(比如Guava)的使用等

  • 前端开发技术:HTML、CSS、Bootstrap和JavaScript基础

  • Spring基础:依赖注入IoC、面向切面编程AOP、SpringBoot

  • MVC框架:Spring MVC、Struts等,包括URL路由、模板、表单、Session、拦截器等知识

  • 数据访问:关系型数据库、JDBC、Spring JDBC、事务、ORM框架(MyBatis,Hibernate、JPA)

  • 成熟应用的关键功能实现:邮件发送、异步任务、缓存、日志等

  • 应用的测试和部署

下面对每部分的内容详细介绍一下。

9eadd09775a21d39752d86e9ef99c5b1.png

4、JSP/Servlet的相关内容

虽然现在各种成熟的MVC框架已经让Java Web开发基本很少使用JSP和Servlet的原生功能了,基本都做了一层封装。但是这部分基础知识建议初学者还是要认真学习。

  1. C/S模型,浏览器访问网站过程

  2. URL基础知识

  3. HTTP消息——请求和响应

  4. 处理HTTP请求的应用程序

  5. Servlet/JSP简介

  1. Servlet容器,Servlet处理机制,Servlet生命周期

  2. 部署Servlet

  3. ServletContext, ServletConfig

  4. Filter, Event Listener

  1. 表达式,scriptlet, declaration

  2. 在JSP中访问Java类

  3. JSP内置对象

  1. HTTP方法——GET v.s. POST

  2. 读取表单数据

  1. Servlets/JSP存在的问题

  2. MVC设计模式

  3. 使用RequestDispatcher

  4. 在Servlets和JSP中传递数据,EL表达式

  1. JSP Tag Lib

  2. Core Tag(if, loop)

  3. Function Tag(string, fmt, utils)

  1. Session&&Cookie基本概念

  2. 通过Cookie记录用户状态(类似购物车的例子)

  3. 使用Session跟踪用户(登录)

5、数据库相关的内容

掌握了Servlet/JSP技术,我们已经可以创建动态的Web应用了。除了动态的Web界面,一个有价值的Web应用必然需要进行数据存储,开发上我们一般称之为数据持久化(Data Persistence)。

从业务功能的角度出发,简单的应用可以认为就是数据的增删改查。比如一个产品级的博客应用,最核心的功能就是对博客内容的创建、修改、删除和查询,而这些功能都离不开Web服务器背后的数据库系统。

  1. 实体、关系(表)、记录(行)、列(属性)

  2. 主键、外键等

  3. 数据库表设计的基本原则

  1. MySQL基本使用

  2. SQL中的DDL——create,drop,alter,建立主键外键等约束

  3. SQL中的DML——insert, select, delete, update,join

  1. 数据库连接,连接池

  2. 使用JDBC API访问数据库

  3. 分页查询

  4. 事务的基本概念

  5. JDBC代码的封装与数据访问的三层架构

6、Spring相关的内容

Spring最重要的两个核心功能是依赖注入(DI,Dependency Injection)和面向切面编程(AOP,Aspect Oriented Programming)。其中DI用于管理Java对象之间的依赖关系,AOP用于解耦业务代码和公共服务代码(如日志,安全,事务等)。DI和AOP能够让代码更加简单,具有良好的松耦合特性和可测试性,极大地简化开发。理解这两者是使用Spring框架的基础。

  1. 依赖注入

  2. 面向切面编程(AOP)

  3. 基于POJO的编程模型

  4. 预置的模板代码(如Spring JDBC)

  1. 依赖注入的优点

  2. 依赖注入如何实现

  1. 基于XML的装配方式

  2. 基于Java Configuration的装配方式

  3. 自动装配

  4. 多种装配方式的混用

  5. 处理装配的歧义

  6. 如何注入属性值

  1. Singleton

  2. Prototype

  3. Request

  4. Session

  5. Global

  1. 切面、目标对象、切点、通知、织入等基本概念

  2. 如何定义切点:定义切点的aspectJ语法

  3. 定义通知

  • 前置通知(Before)

  • 后置通知(AfterReturning)

  • 异常通知(AfterThrowing)

  • 最终通知(After)

  • 环绕通知(Around)

  • 如何给切面传参

7、Spring MVC相关内容

Spring作为Java系的全栈(full-stack)开发框架,当然也对Web开发有着非常好的支持。Spring的Web MVC框架能够使开发者非常容易的开发Web应用,同时能够无缝享受到Spring本身的诸多好处——IoC容器、AOP编程等等。

  1. DispatcherServlet

  2. WebApplicationContext

  3. 处理HTTP请求过程

  1. @Controller, @RequestMapping注解

  2. URL模板模式,@PathVariable

  3. 获取HTTP请求参数,@RequestParam

  4. @RequestMapping方法支持的参数

  5. @RequestMapping方法支持的返回值

  1. 处理静态资源

  2. 配置JSP

  3. 配置其它模板引擎

  4. 重定向、Flash Attribute

  1. 表单数据绑定

  2. Spring表单标签

  3. 表单验证

  4. 文件上传

  5. Flash Attribute

  1. Spring MVC请求处理流程

  2. HandlerInterceptor接口

  3. 配置Interceptor

  1. 配置错误页面

  2. 使用HTTP状态码

  3. @ExceptionHandler

  4. ControllerAdvice全局异常处理

  1. @ResponseBody和@RequestBody

  2. 处理PUT和DELETE请求

8、MyBatis相关内容

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或标注,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录

  1. ORM的概念

  2. 如何定义Mapper接口

  3. 如何定义XML Mapper映射

  4. 如何使用Mapper

  1. SqlSessionFactory

  2. SqlSessionFactoryBuilder

  3. SqlSession

  1. 基于Spring如何配置和使用Mapper

  2. SqlSessionFactoryBean的配置

  3. MyBatis Spring Boot Starter的使用

  1. 熟悉Mapper配置文件

  2. select元素

  3. select的resultType属性

  4. insert元素

  5. update元素

  6. delete元素

  1. resultMap元素

  2. association元素

  3. 嵌套结果与嵌套查询

  4. collection元素

  5. discriminator元素

  6. 动态SQL

  7. 分页查询(分页插件)

9、JPA

ORM框架的出现使得我们能够以面向对象的方式来操作关系数据库,但是长久以来实现应用系统中的数据访问层依然是一件非常繁琐的事情,简单的查询也往往涉及大量重复代码。

Spring Data JPA在则基于JPA进一步简化了数据访问层的实现,它提供了一种类似于声明式编程的方式,开发者只需要编写数据访问接口(称为Repository),Spring Data JPA就能基于接口中的方法命名自动地生成实现。

JPA(Java Persistence API,Java持久化API),定义了对象关系映射(Object Relation Mapping,ORM)以及实体对象持久化的标准接口。 JPA是一套接口规范,JPA的实现主要包括 JBoss 的 Hibernate EntityManager、Oracle 捐献给 Eclipse 社区的 EclipseLink和Apache 的 OpenJPA 等。

  1. Repository

  2. 使用Repository的步骤

  3. 自定义的Repository接口

  4. Repository接口层次及其方法

  1. 自动生成数据库Schema

  2. @Entity和@Table

  3. @Id和@GeneratedValue

  4. @Basic

  5. @Column

  6. @Transient

  7. @Temporal

  8. @Lob

  1. @OneToOn

  2. @JoinColumn

  3. unique属性

  4. 双向@OneToOne关联

  5. 双向关联与cascade

  6. 自动映射的命名规则

  1. @ManyToOne

  2. @OneToMany

  3. @ManyToMany

  4. JoinTable

  5. 用@ManyToOne实现多对多

  1. 如何通过方法名创建查询

  2. 分页与排序

  3. @Query标注

  4. 事务

10、Java Web应用的部署

  • War包规范和结构

  • 在IDE中调试和部署

  • 使用IDE导出War包

  • 将War包部署到服务器

  • 基于Spring Boot的部署

11、其它主题

缓存:EhCache、Spring Cache Manager、数据层缓存、服务层缓存、页面缓存

安全:Spring Security(HTTP基本验证,角色验证,权限验证)

任务调度:Spring任务执行器(Executor)

邮件发送:SMTP协议、spring-boot-starter-mail

Web Socket:@SubscribeMapping, WebSocketConfig

日志:SLF4J与Logback、 Spring Boot Logging、 ConsoleAppender/RollingFileAppender 、Sentry、ELK

12、设计模式

13、更进一步

分布式、深入Java虚拟机、针对不同场景的Java技术框架,到这个阶段已经不仅仅是Java的学习了,而是大型应用场景的技术积累、架构设计的精进了。

c51c65a7512611a86509558745c68086.png

建议大家在入门学习Java的过程当中做好相关的学习规划和路线,这样我们才能知道现在应该学什么,后面应该学什么,企业岗位需要我们掌握的技术知识点有哪些,以此我们才能在合理的周期内学好Java技术,从事这方面的工作。

e77e6067dbbc435a3b0382c873f636fb.png

我也是自学过来的,我知道前期学习java是很枯燥,遇到问题和难题就研究很久,没有一个人能帮助指导,学习学习着就会没有信心,比较懒散想放弃。其实只是学习方法没有找对,闭门造车,从入门到放弃。自学主要就是要坚持,能有毅力。多写博客,在确定进入这行要想清楚,自己是否适合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值