Eclipse - https://courses.in28minutes.com/p/eclipse-tutorial-for-beginners
Maven - https://courses.in28minutes.com/p/maven-tutorial-for-beginners-in-5-steps
JUnit - https://courses.in28minutes.com/p/junit-tutorial-for-beginners
PDF:https://github.com/in28minutes/java-a-course-for-beginners/blob/master/InstallingJavaAndEclipse.pdf
我们热爱编程。我们开设这门课程的目的是培养对编程的热爱。
Java 是最流行的编程语言之一。 Java 提供面向对象和函数式编程特性。
我们采用实践方法,结合使用 JShell(Java 9 中的一个很棒的新功能)和 Eclipse 作为 IDE,来演示 200 多个 Java 编码练习、谜题和代码示例。
通过 250 多个步骤,我们探索了最重要的 Java 编程语言特性
Java 编程基础 - 表达式、变量和打印输出
Java 运算符 - Java 赋值运算符、关系和逻辑运算符、短路运算符
Java 条件和 If 语句
方法 - 参数、参数和返回值
Java 平台概述 - java、javac、字节码、JVM 和平台独立性 - JDK、JRE 与 JVM
面向对象编程——类、对象、状态和行为
OOPS 基础知识 - 封装、抽象、继承和多态性
Java 数据类型基础知识 - 转换、运算符等
Java 内置类 - BigDecimal、String、Java 包装类
Java 条件 - If Else 语句、嵌套 If Else、Java Switch 语句、Java 三元运算符
循环 - Java 中的 For 循环、While 循环、Do While 循环、Break 和 continue
Java 包装类、String 和 BigDecimal 的不变性
Java 日期 - LocalDate、LocalTime 和 LocalDateTime 简介
Java Array 和 ArrayList - Java 字符串数组、对象数组、原始数据类型、toString 和异常
变量参数简介
设计类的基础知识 - 类、对象、状态和行为。决定状态和构造者。
了解对象组合和继承
Java 抽象类和接口。多态性简介。
Java集合 - 列表接口(ArrayList,LinkedList和Vector),集合接口(HashSet,LinkedHashSet和TreeSet),队列接口(PriorityQueue)和映射接口(HashMap,HashTable,LinkedHashMap和TreeMap() - 比较,对比和选择
泛型 - 为什么我们需要泛型?扩展和通用方法、通配符的限制 - 上限和下限。
函数式编程 - Lambda 表达式、流和流上的操作(中间操作 - 排序、不同、过滤、映射和终端操作 - 最大值、最小值、收集到列表)、函数接口 - 谓词接口、消费者接口、用于映射的函数接口、方法引用 - 静态方法和实例方法
线程和多线程简介 - 需要线程
实现线程 - 扩展 Thread 类并实现 Runnable 接口
线程的状态和线程间的通信
执行器服务简介 - 自定义活动线程数。返回 Future、invokeAll 和 invokeAny
异常处理简介 - 异常处理过程中的思考过程。尝试,抓住,最后。异常层次结构 - 检查异常与未检查异常。抛出异常。创建并引发自定义异常 - CurrenciesDoNotMatchException。尝试使用资源 - Java 7 中的新功能。
使用文件列表方法、文件遍历方法和查找方法列出目录中的文件和文件夹。从文件中读取和写入。
您将学习如何作为 Java 程序员思考
您将学习如何开始您的 Java 程序员之旅
您将学习 Eclipse IDE 和 JShell 的基础知识
您将学习使用 Java 开发出色的面向对象程序
您将解决以下讨论主题的各种实践练习
您将学习编程的基础知识 - 变量、选择数据类型、条件执行、循环、编写出色的方法、将问题分解为子问题以及实现出色的异常处理。
您将学习面向对象编程的基础知识 - 接口、继承、抽象类和构造函数
您将学习面向对象编程的重要概念 - 抽象、继承、封装和多态性
您将学习使用 Java 进行基本的函数式编程
您将学习多线程的基础知识 - 使用执行器服务
您将了解各种集合 - 列表、映射、集合和队列接口
连接到 Internet 以下载 Java 9 和 Eclipse。
我们将帮助您使用 JShell 和 Eclipse 安装 Java9。
课程开始
课程结束
步骤 00 - 如何充分利用课程指南?
步骤 01 - 安装 JDK 9 - 附带安装指南 PDF
步骤02 - 验证Java和Jshell
步骤 03 - Java 安装故障排除
步骤 04 - 在 Windows 中设置 Path 环境变量
步骤 00 - 开始编程
步骤 01 - 乘法表挑战介绍
步骤 02 - 启动 JShell
步骤 03 - 分解乘法口诀表挑战
步骤 04 - Java 表达式 - 简介
步骤 05 - Java 表达式 - 练习
步骤 06 - Java 表达式 - 谜题
步骤 07 - 使用 Java 将输出打印到控制台
步骤 08 - 使用 Java 将输出打印到控制台 - 练习语句
步骤 09 - 使用 Java 将输出打印到控制台 - 练习解决方案
步骤 10 - 使用 Java 将输出打印到控制台 - 谜题
第 11 步 - 使用 Java 高级打印输出到控制台
第 12 步 - 使用 Java 高级打印输出到控制台 - 练习和谜题
第 13 步 - Java 变量简介
第 14 步 - Java 变量简介 - 练习和谜题
第 15 步 - 关于 Java 变量需要了解的 4 件重要事项
第 16 步 - 变量如何存储在内存中?
第 17 步 - 如何命名变量?
第 18 步 - 了解 Java 中的基本变量类型
第 19 步 - 了解 Java 中的基本变量类型 - 选择类型
第 20 步 - Java 赋值运算符
第 21 步 - Java 赋值运算符 - 递增、递减和复合赋值的难题
步骤 23 - Java 条件和 If 语句 - 简介
步骤 24 - Java 条件和 If 语句 - 练习语句
第 25 步 - Java 条件和 If 语句 - 练习题
第 26 步 - Java 条件和 If 语句 - 谜题
步骤 27 - Java For 循环打印乘法表 - 简介
步骤 28 - Java For 循环打印乘法表 - 练习语句
步骤 29 - Java For 循环打印乘法表 - 练习题
步骤 30 - Java For 循环打印乘法表 - 谜题
步骤 31 - 编程技巧:JShell - 快捷方式、多行和变量 TODO 上移
步骤 32 - 开始编程 - 修改所有术语
步骤 00 - 第 02 节 - 方法 - 简介
步骤 01 - 您的第一个 Java 方法 - Hello World 两次和练习语句
步骤 02 - Java 方法简介 - 练习和谜题
步骤 03 - 编程技巧 - 使用 JShell 编辑方法
步骤 04 - Java 方法简介 - 参数和参数
步骤 05 - Java 方法参数简介 - 练习
步骤 06 - Java 方法参数简介 - 谜题和技巧
步骤 07 - 回到乘法表 - 创建方法
步骤 08 - 使用参数和方法重载打印乘法表
步骤 09 - 将多个参数传递给 Java 方法
步骤 10 - 从 Java 方法返回 - 简介
步骤 11 - 从 Java 方法返回 - 练习
步骤 99 - 方法 - 部分审查
步骤 00 - 第 03 节 - Java 平台概述 - 部分概述
步骤 01 - Java 平台概述 - 简介 - java、javac、字节码和 JVM
步骤 02 - Java 类和对象 - 第一眼
步骤 03 - 在 Java 类中创建方法
步骤 04 - 创建并编译 Planet.java 类
步骤 05 - 使用 Java 运行 Planet 类 - 使用 main 方法
步骤 06 - 在 Planet Class 中边玩边学
步骤 07 - JDK、JRE 与 JVM
步骤 00 - 安装 Eclipse
步骤 01 - 使用 Eclipse 创建新的 Java 项目
步骤 02 - 使用 Eclipse 的第一个 Java 类
步骤 03 - 使用 Eclipse 编写乘法表 Java 程序
步骤 04 - 为乘法表程序添加更多方法
步骤 05 - 编程技巧 1:使用 Eclipse 重构
步骤 06 - 编程技巧 2:使用 Eclipse 进行调试
步骤 07 - 编程技巧 3:Eclipse 与 JShell - 如何选择?
步骤 00 - 面向对象编程简介 - 部分概述
步骤 01 - 面向对象编程简介 - 基础知识
步骤 02 - 面向对象编程简介 - 术语 - 类、对象、状态和行为
步骤 03 - 面向对象编程简介 - 练习 - 在线购物系统和人员
步骤 04 - 创建 Motor Bike Java 类和几个对象
步骤 05 - 练习解决方案 - 书籍课程和三个实例
步骤 06 - 引入具有速度变量的对象状态
步骤 07 - 了解使用 Setter 方法进行封装的基础知识
步骤 08 - 练习和技巧 - Getters 以及使用 Eclipse 生成 Getters 和 Setters
第09步-对此的困惑和成员变量的初始化
第 10 步 - 封装的第一个优势
步骤 11 - 封装简介 - 级别 2
第 12 步 - 封装练习 - 更好的验证和书籍课程
第 13 步 - 抽象简介
第 14 步 - Java 构造函数简介
第 15 步 - Java 构造函数简介 - 练习和难题
第 16 步 - 面向对象编程简介 - 结论
步骤 00 - 深入了解原始数据类型 - 部分概述
步骤 01 - Java 整数数据类型基础知识 - 转换、运算符等
步骤 02 - Java 整数数据类型 - 谜题 - 八进制、十六进制、后增量和前增量
步骤 03 - Java 整数数据类型 - 练习 - BiNumber - 加法、乘法和双精度
步骤 04 - Java 浮点数据类型 - 转换、转换和准确性
步骤 05 - BigDecimal Java 类简介
步骤 06 - BigDecimal 谜题 - 添加整数
步骤 07 - BigDecimal 练习 - 单利计算
步骤 08 - Java 布尔数据类型 - 关系和逻辑运算符
步骤 09 - Java 布尔数据类型 - 谜题 - 短路运算符
第 10 步 - Java 字符数据类型 char - 表示和转换
步骤 11 - Java char 数据类型 - 练习 1 - isVowel
步骤 12 - Java char 数据类型 - 练习 2 - isDigit
步骤 13 - Java char 数据类型 - 练习 3 - isConsonant,列出大写和小写字符
第 14 步 - 深入了解原始数据类型 - 结论
步骤 00 - Java 条件 - 部分概述
步骤 01 - If else 语句简介
步骤 02 - 嵌套 If Else 简介
步骤 03 - If Else 语句 - 谜题
步骤 04 - 如果还有问题 - 如何在 Java 中获取用户输入?
步骤 05 - 如果是其他问题 - 如何从用户那里获得数字 2 和选择?
步骤 06 - If Else 问题 - 使用嵌套的 If Else 实现
步骤 07 - Java Switch 语句 - 简介
步骤 08 - Java Switch 语句 - 谜题 - 默认、突破和失败
步骤 09 - Java Switch 语句 - 练习 - isWeekDay、nameOfMonth、nameOfDay
第 10 步 - Java 三元运算 - 简介
步骤 11 - Java 条件 - 结论
步骤 00 - Java 循环 - 部分简介
步骤 01 - Java For 循环 - 语法和难题
步骤 02 - Java For 循环 - 练习概述和第一个练习素数
步骤 03 - Java For 循环 - 练习 - 对 N 个数字求和以及除数之和
步骤 04 - Java For 循环 - 练习 - 打印数字三角形
步骤 05 - Java 中的 While 循环 - 简介
步骤 06 - While 循环 - 练习 - 立方体和正方形达到极限
步骤 07 - Java 中的 Do While 循环 - 简介
步骤 08 - 在 Java 中执行 While 循环 - 示例 - 当用户输入正数时进行立方体
步骤 09 - 中断和继续简介
第 10 步 - 在 Java 中选择循环 - For、While 和 Do While
步骤 00 - Java 引用类型 - 部分简介
步骤 01 - 引用类型 - 它们如何存储在内存中?
步骤 02 - Java 参考类型 - 谜题
步骤 03 - 字符串类 - 简介和练习 - 在新行上打印每个单词和字符
步骤 04 - 字符串类 - 练习题和一些更重要的方法
步骤 05 - 了解字符串是不可变的和字符串连接、大写、小写、修剪方法
步骤 06 - 字符串连接和连接、替换方法
步骤 07 - Java 字符串替代方案 - StringBuffer 和 StringBuilder
步骤 08 - Java 包装类 - 简介 - 为什么和什么?
步骤 09 - Java 包装类 - 创建 - 构造函数和 valueOf
步骤 10 - Java 包装类 - 自动装箱和一些包装常量 - SIZE、BYTES、MAX_VALUE 和 MIN_VALUE
第 11 步 - Java 日期 - LocalDate、LocalTime 和 LocalDateTime 简介
第 12 步 - Java 日期 - 探索 LocalDate - 创建和使用日期的方法
步骤 13 - Java 日期 - 探索 LocalDate - 比较日期并创建特定日期
第 14 步 - Java 引用类型 - 结论
步骤 00 - Array 和 ArrayList 简介 - 带有挑战的章节介绍
步骤 01 - 了解数组的需求和基础知识
步骤 02 - Java 数组 - 创建和访问值 - 简介
步骤 03 - Java 数组 - 谜题 - 对象数组、原始数据类型、toString 和异常
步骤 04 - Java 数组 - 比较、排序和填充
步骤 05 - Java 数组 - 练习 - 创建学生班级 - 第 1 部分 - 总分和平均分
步骤 06 - Java 数组 - 练习 - 创建学生班级 - 第 2 部分 - 最大和最小分数
步骤 07 - 变量参数简介 - Need
步骤 08 - 变量参数简介 - 基础知识
步骤 09 - 变量参数简介 - 增强学生课堂
第 10 步 - Java 数组 - 在练习中使用 Person 对象和字符串元素
第 11 步 - Java 字符串数组 - 练习题 - 打印字母数量最多的星期几等
第 12 步 - 添加和删除标记 - 数组问题
第 13 步 - 初看 ArrayList - 简介
第 14 步 - 首先看看 ArrayList - 重构 Student 类以使用 ArrayList
第 15 步 - 首先了解 ArrayList - 通过添加和删除标记来增强学生班级
第 16 步 - Array 和 ArrayList 简介 - 结论
步骤 00 - 面向对象编程 - 级别 2 - 部分简介
步骤 01 - 设计类的基础知识 - 类、对象、状态和行为
步骤 02 - OOPS 示例 - 粉丝类 - 决定状态和构造函数
步骤 03 - OOPS 示例 - 粉丝类 - 用方法决定行为
步骤 04 - OOPS 练习 - 矩形类
步骤 05 - 通过客户地址示例了解对象组合
步骤 06 - 理解对象组合 - 练习 - 书籍和评论
步骤 07 - 理解继承 - 为什么我们需要它?
步骤 08 - 对象位于继承层次结构的顶部
步骤 09 - 继承和重写 - 使用 toString() 方法
步骤 10 - Java 继承 - 练习 - 学生和员工类
第 11 步 - Java 继承 - 默认构造函数和 super() 方法调用
第 12 步 - Java 继承 - 难题 - 多重继承、引用变量和 instanceof
第 13 步 - Java 抽象类 - 简介
步骤 14 - Java 抽象类 - 第一个示例 - 使用模板方法创建菜谱
第 15 步 - Java 抽象类 - 谜题
步骤 16 - Java 接口 - 示例 1 - 游戏控制台 - 如何考虑接口?
步骤 17 - Java 接口 - 示例 2 - 复杂算法 - 由外部团队定义的 API
第 18 步 - Java 接口 - 谜题 - 未实现的方法、抽象类、变量、默认方法等
第 19 步 - Java 接口与抽象类 - 比较
第 20 步 - Java 接口 Flyable 和抽象类 Animal - 练习
步骤 21 - 多态性 - 简介
步骤 01 - Java 集合 - 部分概述以及需要集合
步骤02 - 列表界面 - 简介 - 位置为王
步骤 03 - 列表接口 - 不变性和实现介绍 - ArrayList、LinkedList 和 Vector
步骤 04 - 列表接口实现 - ArrayList 与 LinkedList
步骤 05 - 列表接口实现 - ArrayList 与 Vector
步骤 06 - 列表界面 - 添加、删除和更改元素和列表的方法
步骤 07 - List 和 ArrayList - 迭代元素
步骤 08 - List 和 ArrayList - 选择打印和删除元素的迭代方法
步骤 09 - 列表和数组列表 - 谜题 - 类型安全和删除整数
第10步-List和ArrayList-排序-集合排序静态方法简介
步骤 11 - List 和 ArrayList - 排序 - 在学生类中实现可比接口
第 12 步 - 列表和 ArrayList - 排序 - 通过实现 Comparator 接口提供灵活性
第 13 步 - 列表和 ArrayList - 总结
步骤 14 - 设置接口 - 简介 - 无重复
第 15 步 - 了解数据结构 - 数组、链表和散列
第 16 步 - 了解数据结构 - 树 - 排序顺序
第 17 步 - 设置接口 - 动手 - HashSet、LinkedHashSet 和 TreeSet
步骤 18 - 设置界面 - 练习 - 查找列表中的唯一字符
第 19 步 - TreeSet - NavigableSet 中的方法 - Floor、Lower、Upper、SubSet、Head 和 TailSet
步骤 20 - 队列接口 - 按顺序处理元素
步骤21 - PriorityQueue介绍 - 基本方法和自定义优先级
步骤 22 - 地图界面 - 简介 - 键和值
步骤 23 - 映射接口 - 实现 - HashMap、HashTable、LinkedHashMap 和 TreeMap
第24步-地图界面-基本操作
步骤 25 - 映射接口 - 比较 - HashMap、LinkedHashMap 与 TreeMap
步骤 26 - 地图界面 - 练习 - 计算一段文本中字符和单词的出现次数
步骤 27 - TreeMap - 来自 NavigableMap 的方法 - FloorKey、higherKey、firstEntry、subMap 等
步骤 28 - Java 集合 - 三个技巧的结论
步骤 01 - 泛型简介 - 为什么我们需要泛型?
步骤 02 - 实现自定义列表的泛型
步骤 03 - 使用通用返回方法扩展自定义列表
步骤 04 - 泛型难题 - 扩展和泛型方法的限制
步骤 05 - 泛型和通配符 - 上限和下限
步骤 01 - 函数式编程简介 - 函数是一等公民
步骤 02 - 函数式编程 - 第一个以函数作为参数的示例
步骤 03 - 函数式编程 - 练习 - 循环数字列表
步骤 04 - 函数式编程 - 过滤 - 从列表中打印奇数和偶数的练习
步骤 05 - 函数式编程 - 收集 - 列表中数字的总和
步骤 06 - 函数式编程与结构式编程 - 快速比较
步骤 07 - 函数式编程术语 - Lambda 表达式、流和流上的操作
步骤 08 - 流中间操作 - 排序、不同、过滤和映射
步骤 09 - 流式中间操作 - 练习 - 前 10 的平方、将字符串列表映射为小写和字符串长度
步骤 10 - 流终端操作 - 1 - 使用比较器进行最大操作
步骤 11 - 流终端操作 - 2 分钟,收集到列表,
第 12 步 - Java 中的可选类 - 简介
步骤 13 - 在功能接口的屏幕后面 - 实现谓词接口
第 14 步 - 在功能界面的屏幕后面 - 实施消费者界面
步骤 15 - 在功能接口的屏幕后面 - 实现用于映射的功能接口
第 16 步 - 使用方法引用简化函数式编程代码 - 静态方法和实例方法
第 17 步 - 函数是一等公民
第 18 步 - 函数式编程简介 - 结论
步骤 01 - 线程和多线程简介 - 需要线程
步骤 02 - 为 Task1 创建线程 - 扩展线程类
步骤 03 - 为 Task2 创建线程 - 实现 Runnable 接口
步骤 04 - 理论 - 线程的状态
步骤 05 - 为线程设置优先级请求
步骤06 - 线程之间的通信 - join 方法
步骤 07 - 线程实用方法和同步关键字 - sleep、yield
步骤08 - 需要控制线程的执行
步骤09 - 执行器服务简介
第10步 - 执行器服务 - 自定义线程数
第 11 步 - 执行器服务 - 使用 Callable 从线程返回 Future
第12步 - 执行器服务 - 使用invokeAll等待多个任务完成
步骤 13 - 执行器服务 - 使用 invokeAny 仅等待最快的任务
步骤 14 - 线程和多线程 - 结论
步骤 01 - 异常处理简介 - 异常处理期间的思考过程
步骤 02 - 异常基础知识 - NullPointerException 和 StackTrace
步骤 03 - 处理异常的基础知识 - try 和 catch
步骤 04 - 处理异常的基础知识 - 异常层次结构、匹配和捕获多个异常
步骤 05 - 处理异常的基础 - 需要finally
步骤 06 - 处理异常的基础知识 - 谜题
步骤 07 - 检查异常与未检查异常 - 示例
步骤 08 - 错误和异常的层次结构 - 检查和运行时
步骤 09 - 引发异常 - 货币与运行时异常不匹配
第 10 步 - 引发已检查异常 - 引发方法签名和处理
步骤 11 - 引发自定义异常 - CurrenciesDoNotMatchException
第 12 步 - 使用 Try with Resources 编写更少的代码 - Java 7 中的新功能
步骤 13 - 处理异常的基础知识 - 谜题 2
第 14 步 - 异常处理 - 最佳实践结论
步骤 01 - 使用文件列表方法列出目录中的文件和文件夹
步骤 02 - 使用 Step Files walk 方法和使用 find 方法搜索,递归列出和过滤目录中的所有文件和文件夹
步骤 03 - 从文件中读取内容 - 文件 readAllLines 和lines 方法
步骤 04 - 将内容写入文件 - 文件写入方法
步骤 05 - 文件 - 结论
步骤 01 - 同步入门
步骤 02 - 同步问题 - 并发性较低
步骤 03 - 使用 ReEntrantLock 输入锁
步骤 04 - 原子类简介 - AtomicInteger
步骤 05 - 需要 ConcurrentMap
步骤 06 - 使用 ConcurrentHashMap 实现示例
步骤 07 - ConcurrentHashMap 对不同区域使用不同的锁
步骤 08 - CopyOnWrite 并发集合 - 当读取多于写入时
步骤 09 - 结论
Java 技巧 01 - 导入和静态导入
Java 技巧 02 - 块
Java 技巧 03 - equals 方法
Java 技巧 04 - hashcode 方法
Java 技巧 05 - 类访问修饰符 - 公共和默认
Java 技巧 06 - 方法访问修饰符 - public、protected、private 和 default
Java 技巧 07 - Final 类和 Final 方法
Java 技巧 08 - 最终变量和最终参数
Java 技巧 09 - 为什么我们需要静态变量?
Java 技巧 09 - 为什么我们需要静态方法?
Java技巧10——静态方法不能使用实例方法或变量
Java 技巧 11 - public static final - 常量
Java 技巧 12 - 嵌套类 - 内部类与静态嵌套类
Java 技巧 13 - 匿名类
Java 技巧 14 - 为什么选择 Enum 和 Enum 基础知识 - 序数和值
Java 技巧 15 - 枚举 - 构造函数、变量和方法
Java 技巧 16 - 快速查看内置枚举 - Month、DayOfWeek
请参阅我们的故障排除指南 - https://github.com/in28minutes/in28minutes-initiatives/tree/master/The-in28Minutes-TroubleshootingGuide-And-FAQ
单击此处 - 30 多个播放列表,包含 500 多个有关 Spring、Spring Boot、REST、微服务和云的视频
in28Minutes 正在为您创建令人惊叹的解决方案来学习 Spring Boot、全栈和云 - Docker、Kubernetes、AWS、React、Angular 等 - 在这里查看我们的所有课程
新章节简介 - https://www.udemy.com/course/java-programming-tutorial-for-beginners/learn/lecture/25694200
感谢您选择向 in28Minutes 学习。
下载课程的课程材料(演示文稿和下载) - 单击此处
我们下一步再见!
接下来的部分需要最新版本的 Java 和 Eclipse Enterprise Edition。
如果您遇到任何问题:
安装最新版本的 Java
Java 和 Eclipse 故障排除
Windows:C:Program FilesJavajdk-{版本}
JDK 16 示例 - C:Program FilesJavajdk-16
JDK 17 示例 - C:Program FilesJavajdk-17
Mac:/Library/Java/JavaVirtualMachines/jdk-{版本}.jdk/Contents/Home
JDK 16 示例 - /Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home
JDK 17 示例 - /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
Windows:C:Program FilesJavajdk-{版本}bin
JDK 16 示例 - C:Program FilesJavajdk-16bin
Mac:/Library/Java/JavaVirtualMachines/jdk-{版本}.jdk/Contents/Home/bin
JDK 16 示例 - /Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home/bin
包com.in28分钟.learnspringframework.sample.enterprise.flow.web;导入org.springframework.beans.factory.annotation.Autowired;导入org.springframework.web.bind.annotation.GetMapping;导入org.springframework.web.bind。注释.RestController;导入com.in28minutes.learnspringframework.sample.enterprise.flow.business.BusinessService;//以正确的格式发送响应@RestControllerpublic class Controller { @Autowiredprivate BusinessService BusinessService; //"/sum" => 100@GetMapping("/sum") public long displaySum() { returnbusinessService.calculateSum(); } }
//业务逻辑包 com.in28分钟.learnspringframework.sample.enterprise.flow.business;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com. in28分钟.learnspringframework.sample.enterprise.flow.data.DataService;@Component公共类 BusinessService { @Autowiredprivate DataService 数据服务; public longcalculateSum() { List<Integer> data = dataService.retrieveData(); return data.stream().reduce(Integer::sum).get(); } }
包 com.in28months.learnspringframework.sample.enterprise.flow.data;导入 java.util.Arrays;导入 java.util.List;导入 org.springframework.stereotype.Component;@Component 公共类 DataService { 公共 List<Integer>retrieveData( ) { return Arrays.asList(12,34,56,78,90); } }
使用 Docker 启动 MySQL
docker run --detach --env MYSQL_ROOT_PASSWORD=dummypassword --env MYSQL_USER=courses-user --env MYSQL_PASSWORD=dummycourses --env MYSQL_DATABASE=courses --name mysql --publish 3306:3306 mysql:5.7
application.properties配置
#spring.datasource.url=jdbc:h2:mem:testdb spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://localhost:3306/courses spring.datasource.username=courses-user spring.datasource.password=dummycourses spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect #courses-user@localhost:3306
mysqlsh 命令
mysqlsh connect courses-user@localhost:3306 sql use courses select * from course; quit
Docker 命令
docker container ls docker container stop ID
感谢您帮助这门课程惠及 100,000 名学习者。每天都有成千上万的学习者学习这门课程!感谢大家的厚爱。
Java 正在不断发展。非常高兴地宣布课程的惊人更新!我们正在课程中添加一个使用 Spring 和 Spring Boot 的真实世界项目!
更新了课程以使用 JDK 16(上周发布)
添加了新内容
Java模块化
记录
文本块
开关表达式
局部变量类型推断
文件、列表、集合、映射和字符串中的新 Java API
添加了一个新部分来使用以下内容构建真实世界的 Java Rest API:
Spring框架
春季启动
日本专业协会
数据JPA
H2/MySQL
码头工人
你还在等什么?
我对这些变化感到非常兴奋。我希望你也是!
祝你好运。
请随时在这里发布您的问题!
兰加
每天坚持学习!
上周我们宣布了课程的惊人更新。
我们收到了学习者的精彩反馈。
所有更新对于课程的现有学习者都是免费的。
立即开始使用 Java 新功能、Spring 和 Spring Boot!
祝你好运
Docker 和 Kubernetes 在当今的微服务世界中至关重要。认识到这一需求,我们于 2021 年 1 月宣布了课程的惊人更新:
第 6 节 - 使用 Spring Cloud 的微服务 - V2 第 7 节 - 使用 Spring Boot 和 Spring Cloud 的 Docker 和微服务 - V2 第 8 节:使用 Docker、Spring Boot 和 Spring Cloud 的 Kubernetes 和微服务 - V2 我们收到了学习者的精彩反馈。
所有更新对于课程的现有学习者都是免费的。