java-基础

177 阅读12分钟

教程

ruiyeclub/SpringBoot-Hello: SpringBoot学习入门案例,持续更新中... :beer: (github.com)

工具

  1. toolbox

感谢您下载 Fleet! (jetbrains.com)

解决jetbrains-toolbox缺失修改安装路径默认安装C盘问题_jetbrains-toolbox安装位置-CSDN博客

  1. 全家桶破解

chrome浏览器:

3.jetbra.in/

  1. idea
  • 优化

IDEA最全最常用的配置与性能优化(Java必备)_idea优化-CSDN博客

  • 保存自动代码格式化设置

image.png

我在京东是如何一年绩效就拿到3次C的 | 一缕阳光 (arayofsunshine.dev)

  • 使用

IntelliJ IDEA学习这一篇就够了,从入门到上瘾 - 知乎 (zhihu.com)

  • 搜索

IntelliJ 的搜索和全局搜索怎么用 - 知乎 (zhihu.com)

  • IDEA 常用快捷键

IDEA常用快捷键大全(建议收藏)! - 知乎 (zhihu.com)

IDEA中三种注释方式的快捷键_idea快速注释_Archie_java的博客-CSDN博客

  • IDEA 快速查看类视图

IDEA如何快速查看类中的属性和方法?_idea怎么看一个类的所有方法-CSDN博客

  • idea 快速生成 get set

IntelliJ IDEA生成get/set方法的快捷键是什么_idea生成get set快捷键-CSDN博客

  • lombok 插件

最全一篇Lombok使用讲解,及原理,真香啊-腾讯云开发者社区-腾讯云 (tencent.com)

  • IDEA Mark directory as

idea添加目录时,Mark Directory as的几个选项详解_金麟十三少的博客-CSDN博客

  • IDEA 手动引入jar包

IDEA手动引入jar包方式_idea手动导入jar包_HELLFS的博客-CSDN博客

Idea导入jar包的两种方法_如何向idea导入jar_Golden_soft的博客-CSDN博客

  • idea java 异常汇总

使用java命名packge引发异常

java.lang.SecurityException: Prohibited package name: java_我有满天星辰的博客-CSDN博客

idea properties或配置文件 FileNotFoundException 系统找不到指定的路径 路径问题

idea properties或配置文件 FileNotFoundException 系统找不到指定的路径 路径问题_看穿数据之美的博客-CSDN博客

maven 资源导出问题

maven资源文件的相关配置 - XRacoon - 博客园 (cnblogs.com)

关于在maven项目中配置文件资源导出问题 - yucreator - 博客园 (cnblogs.com)

Maven 资源导出问题 - 编程猎人 (programminghunter.com)

maven 配置失效

解决2019.2 IDEA中Maven环境配置后自动变回默认设置问题_爱喝椰汁的木木的博客-CSDN博客

maven 新建项目默认配置

避免每次都重新配置。

IDEA设置默认的maven配置_修改idea自带maven-CSDN博客

  1. windows-多jdk配置

本机删除的环境变量:

C:\Program Files\Microsoft\jdk-11.0.16.101-hotspot\bin

C:\Program Files\Common Files\Oracle\Java\javapath

C:\Program Files (x86)\Common Files\Oracle\Java\javapath

安装多个版本jdk,可自由切换_安装多个jdk_琳1st的博客-CSDN博客

Win10下多版本JDK安装及管理 - 知乎 (zhihu.com)

  1. tomcat

2023.3 Idea配置Tomcat环境 - lockly - 博客园 (cnblogs.com)

image.png

java 学习资料

java8 api手册

  1. 中文

Java 8 中文版 - 在线API中文手册 - 码工具 (matools.com)

  1. oracle

Java Platform Standard Edition 8 Documentation (oracle.com)

Java SE 文档 — API 和文档 | Oracle 中国

书籍

  1. Effective Java

01. 考虑使用静态工厂方法替代构造方法 - 《Effective Java (高效 Java) 第三版》 - 书栈网 · BookStack

  1. java8-tutorial

winterbe.com

winterbe/java8-tutorial: Modern Java - A Guide to Java 8 (github.com)

  1. java8-the-missing-tutorial

java8-the-missing-tutorial

java github

  1. tobebetterjavaer

tobebetterjavaer

  1. java 全栈

java全栈

java 博客

  1. 廖雪峰-Java

Java教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

  1. Java学习笔记

Java学习笔记

  1. 狂神说 java 全系笔记

Blog-Java: 狂神说视频学习的全部笔记、源码及一些个人项目。 (gitee.com)

笔记

springmvc 狂神说的详细笔记(完整版)_狂神springmvc笔记_Silverboss的博客-CSDN博客)

java 学习

第一个java程序

  1. java

main.java

class HelloJava{
	public static void main(String[] args){
		System.out.println("hello java");		
	}	
}
javac main.java       #编译
java HelloJava        #运行

编译结果:

编译名为 class 名

image.png

详解第一个java程序——HelloWorld! - 知乎 (zhihu.com)

  1. c#

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello c#");
        }
    }
}
csc ./Program.cs  #编译
./Program.exe     #运行

编译结果:

编译名为Program,无论是否更改class名

image.png

JDK,JRE和JVM三者之间的关系

JDK,JRE和JVM是什么?三者有什么关系?二分钟搞定!!! - 知乎 (zhihu.com)

printf

Java | Output | .printf() | Codecademy

java 值传递

面试官:Java为什么只有值传递? - 知乎 (zhihu.com)

值类型、引用类型

Java数据类型(八种基本数据类型 + 四种引用类型)、数据类型转换-腾讯云开发者社区-腾讯云 (tencent.com)

java 异常机制

深入理解Java异常机制 - 知乎 (zhihu.com)

面向对象

class get set

  1. idea 快速生成 get set

IntelliJ IDEA生成get/set方法的快捷键是什么_idea生成get set快捷键-CSDN博客

继承

  1. 构造 继承

Java中的继承(extends)以及构造方法链-CSDN博客

  1. override overload

Java 多态 | 菜鸟教程 (runoob.com)

子类中标记重写:仅用于标记而已

@Override
public void Show() {
    System.out.println("child" + "Name: " + super.getName() + " Age: " + super.getAge());
}

多态

  1. instanceof

Java instanceof用法详解-CSDN博客

泛型

一文带你搞懂 Java 泛型 - 知乎 (zhihu.com)

集合

  1. 排序

Java实际开发中,你都是怎么给List排序? - 知乎 (zhihu.com)

  1. 逆序

java8笔记: sorted()之正序倒序 - 我要变肥 - 博客园 (cnblogs.com)

  1. Stream

深入剖析Java Stream底层源码 - Xianuii - 博客园

多线程

java多线程使用详解与案例,超详细_java多线程使用案例-CSDN博客

反射

Java反射详解(内容爆炸的多和详细,一文让你彻底搞懂)-CSDN博客

注解

Java注解入门到精通,这一篇就够了_java 注解-CSDN博客

.class

一篇文章带你搞定 Java中 类名.class 的含义-CSDN博客

mvn 导出 jar,linux、windows运行

  1. 生成 jar
  • 手动配置
java -jar *.jar

IDEA MAVEN项目打包成jar包的两种简单方式_maven file 转换jar-CSDN博客

  • maven_shade_plugin
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.5.2</version>
            <configuration>
                <!--                    <createDependencyReducedPom>true</createDependencyReducedPom>-->
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>Main</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Main 中Main为main函数所在class

image.png

Apache Maven Shade Plugin – Introduction

maven插件maven-shade-plugin打包jar文件使用详解_maven maven-shade-plugin-CSDN博客

多模块

【maven】最全Maven详解,看这一篇就够啦_maven依赖管理详解-CSDN博客

IDEA使用Maven创建父与子多模块项目_idea创建maven子模块-CSDN博客

netty写Echo Server & Client完整步骤教程(图文) - 田野与天 - 博客园

spring 历史文档入口

Spring Framework与JDK版本对应关系_org.springframework.core-3.0.5 jdk-CSDN博客

Spring Framework Documentation

Overview (Spring Framework 5.3.34 API)

如何查看SPRING-BOOT历史版本 - nakano_may - 博客园 (cnblogs.com)

关于Spring官方文档的一切(所有版本,pdf下载) - 赵米饭 - 博客园 (cnblogs.com)

IDEA 单元测试写法

Idea 使用 Junit4 进行单元测试-腾讯云开发者社区-腾讯云 (tencent.com)

spring ioc

@Autowired + xml

理解:

  • 对象本身得构造需在.xml中得bean标签中正常配置,包括自身的构造、属性等;
  • 对象间的构造注入可以使用 @Autowired 代替,免去bean中的ref的配置;
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">
		
	<!--开启注解的支持-->
    <context:annotation-config/>

</beans>

【Spring】使用xml文件实现自动装配;使用注解@Autowired和@Resource实现自动装配_@autowired和@resource的装配过程-CSDN博客

@Commpent @Value

理解:

免去类本身在xml中的配置,及免去对应bean的配置

需要在*.xml中表明要扫描的包

<!--扫描包-->
<context:component-scan base-package="Model"/>

java 类配置

  1. 类中依赖类自动注入

这6种 Spring 依赖注入方式,你都会吗?-阿里云开发者社区 (aliyun.com)

示例:


@Configuration
public class AppConfig {
    @Bean
    public Person person() {
        return new Person();
    }

    @Bean
    public Dog dog() {
        return new Dog();
    }
}

@Component
public class Dog implements Showable {
    public String getName() {
        return name;
    }

    @Value("caxa2")
    public void setName(String name) {
        this.name = name;
    }

    @Value("caxa")
    private String name;

    @Override
    public void show() {
        System.out.println("dog " + this.name);
    }
}

@Component
public class Person {
    public Dog getDog() {
        return dog;
    }

    @Autowired
    private Dog dog;

    public void show() {
        dog.show();
        System.out.println("person");
    }
}

public class PersonTest {
    @Test
    public void test() {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        Person p = (Person) context.getBean("person");
        p.show();
    }
}

mybatis

mybatis – MyBatis 3 | 简介

Java:MyBatis+SQLite使用实例_mybatis连接sqlite-CSDN博客

一对多关系

Mybatis一对多、多对一、批量插入_mybatis一对多插入usegeneratedkeys-CSDN博客

JavaEE:MyBatis一对多插入与查询-CSDN博客

Mybatis一对多、多对一、批量插入_mybatis一对多插入usegeneratedkeys-CSDN博客

SpringBoot+MyBatis批量插入数据的三种方式 - helloliyh - 博客园 (cnblogs.com)

MyBatis进阶八:Mybatis批处理;(批量插入,批量删除,批量更新待写…)_mybatis 批处理-CSDN博客

mybatis 通用mapper

abel533/Mapper: Mybatis Common Mapper - Easy to use (github.com)

mybatis insert sql 中表明爆红

解决方法:IEDA中直接连接DB

image.png

.mapper 中时间的写法

mybatis xml时间范围查询三种方式_mybatis日期范围查询-CSDN博客

.mapper 中 形参

  • #{} 带防参数注入
  • ${} 不带,元数据,可用于动态表名

必须声明表变量 "@P0" ——mybatis提示错误_必须声明标量变量 "@p0group"。-CSDN博客

sql server 按分钟间隔查询

<select id="getDataByTime" resultType="com.caxa.monitor_data_webapi.mybatis.entity.Dr">
    select * from DR${drId} where CollectTime between #{startTime} and #{endTime}
    and datediff(MINUTE,#{startTime},#{endTime})%1=0
    and not exists(
        select * from DR${drId} where CollectTime between #{startTime} and #{endTime})
    order by CollectTime asc
</select>

spring mvc

示例

Blog-Java: 狂神说视频学习的全部笔记、源码及一些个人项目。 (gitee.com)

web.xml

[springmvc] - 配置文件 springmvc-config.xml 和 web.xml - 武卡卡 - 博客园 (cnblogs.com)

IDEA在一个Project(工程)下创建多个Module(模块)_idea一个project下多个module-CSDN博客

Restfull


package com.mvc;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RestControl {
    @RequestMapping(value = "/get", method = RequestMethod.GET)
    public String get() {
        return "get";
    }

SpringMVC开发RESTful接口 - CoderJerry - 博客园 (cnblogs.com)

spring boot

IDEA 无法发选择 java8

IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8?(已解决)_idea jre是17如何设置8-CSDN博客

IDEA debug spirng boot

Spring Boot 运行配置 _IntelliJ IDEA 中文网

spring boot读取properties中的值

SpringBoot四种读取properties文件的方式_springboot读取properties-CSDN博客

SpringBoot四种读取properties文件的方式 - 靠自己 - 博客园 (cnblogs.com)

6 种方式读取 Springboot 的配置,老鸟都这么玩(原理+实战)-腾讯云开发者社区-腾讯云 (tencent.com)

spring boot 启动后执行

Springboot启动后执行方法(4种) - 整合侠 - 博客园 (cnblogs.com)

spring boot 集成mybatis

Spring Boot 整合 MyBatis - spring 中文网 (springdoc.cn)

SpringBoot集成Mybatis保姆级教程(完整版)-腾讯云开发者社区-腾讯云 (tencent.com)

IDEA mapper 中 sql的格式化

Idea设置Mapper.xml文件中SQL命令格式化_idea mapper sql格式化-CSDN博客

@Autowired 和 @Resource注解的区别

【Spring实战】28 @Autowired 和 @Resource注解的区别与使用-CSDN博客

model mapper

SpringBoot项目中ModelMapper配置以及使用_org.modelmapper:modelmapper-CSDN博客

spring boot 新建项目,添加 mybatis 依赖

  1. 错误:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

彻底解决Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource_failed to configure a datasource: 'url' attribute -CSDN博客

【已解决】SpringBoot 启动报错:Failed to configure a DataSource: ‘url‘ attribute is not specified and no emb_spring boot 配置了数据源failed to configure a datasource-CSDN博客

在Spring Boot项目中连接SQL Server的几种方式_springboot连接sqlserver-CSDN博客

  1. 错误:Failed to parse config resource: class path resource [mybatis/mybatis-config.xml];

注意资源文件是否 build

<build>
    <!-- 添加资源 -->
    <resources>
            <resource>
                    <directory>src/main/resources</directory>
                    <!-- src/main/resources下的指定资源放行 -->
                    <includes>
                            <include>**/*.properties</include>
                            <include>**/*.yml</include>
                            <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
            </resource>
    </resources>
</build>

(亲测解决)Unsatisfied dependency expressed through bean property 'sqlSessionFactory'-CSDN博客

有效

Unsatisfied dependency expressed through bean property ‘sqlSessionFactory‘报错解决-CSDN博客

  1. 错误:This application has no explicit mapping for /error, so you are seeing this as a fallback.

image.png

参考:

【异常】This application has no explicit mapping for /error, so you are seeing this as a fallback的解决方法-阿里云开发者社区 (aliyun.com)

实际遇到的情况:

方法内部异常,访问数据库 数据model 与 数据库中的model,自动映射出错

image.png

spring boot 路由

  1. 资料

【Spring Boot】SpringBoot中的控制器和路由_java_Ricky_0528-开放原子开发者工作坊 (csdn.net)

  1. 接收 dateTime

后台LocalDateTime参数的接收问题(Failed to convert value of type ‘java.lang.String‘ to required type ‘java.tim_java localdatetime 接收参数为0-CSDN博客

spring boot 集成 swagger2

SpringBoot2.6.x及以上版本整合swagger文档 - yfwei - 博客园 (cnblogs.com)

spring boot 集成 swagger3

Spring Boot 使用 Swagger3 生成 API 接口文档-腾讯云开发者社区-腾讯云 (tencent.com)

Springboot 2.6.3 整合 Swagger3 - 龙卷风 - 我不生产代码,我只是代码的搬运工! (sviping.com)

SpringBoot2.6.x及以上版本整合swagger文档 - yfwei - 博客园 (cnblogs.com)

解决错误:

Error creating bean with name 'dataController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name

spring boot集成swagger3 - 路迢迢 - 博客园 (cnblogs.com)

限制扫描:

Swagger3.0介绍及springboot整合Swagger3.0_swagger 3.0-CSDN博客

导出pdf:

如何将 Swagger 导出为 JSON、Markdown、PDF、Word 文档 (apifox.com)

spring boot maven 打包 jar,运行无主体清单

Spring Boot 启动时 “jar中没有主清单属性” 异常 - spring 中文网 (springdoc.cn)

jar windows 服务部署

SpringBoot项目jar包部署成windows服务教程_将springboot打包成的jar文件做成windows服务-CSDN博客

错误:# IDEA Disconnected from the target VM, address: ‘127.0.0.1:64377‘, transport: ‘socket)

Debug小技巧:如何解决IDEA Disconnected from the target VM, address: ‘127.0.0.1:64377‘, transport: ‘socket)_debug时disconnected from the target vm, address: '1-CSDN博客

自己的解决:选错的debug的项目

image.png

spring boot 集成 日志

  1. aop

springboot集成系统操作日志超详细_springboot syslog-CSDN博客

  1. 日志

在 Spring Boot 中使用 Logback 和 Log4j2 记录日志 - spring 中文网 (springdoc.cn)

Spring Boot 日志配置 - spring 中文网 (springdoc.cn)

SpringBoot 整合日志模块 - 掘金 (juejin.cn)

  1. 日志按需求输出至多文件

SpringBoot+logback实现按业务输出日志到不同的文件 - zeng1994 - 博客园 (cnblogs.com)

spring boot 观察者&发布订阅

SpringBoot事件监听机制及观察者模式/发布订阅模式-阿里云开发者社区 (aliyun.com)

spring boot 定时任务

玩转SpringBoot:SpringBoot的几种定时任务实现方式 - 码农Academy - 博客园 (cnblogs.com)

  1. SchedulingConfigurer

SpringBoot+SchedulingConfigurer实现动态定时任务 - 掘金 (juejin.cn)

springboot定时任务—实现SchedulingConfigurer接口做定时调度(一)-CSDN博客

实现较全

Spring SchedulingConfigurer 实现动态定时任务-CSDN博客

SpringBoot 动态可配定时任务(动态定时任务) - 码农界的苦逼猿 - 博客园 (cnblogs.com)

springboot 定时任务 实现SchedulingConfigurer接口,修改定时任务不重启项目_abstractsinglescheduledtask implements schedulingc-CSDN博客

google 包

为什么ThreadFactoryBuilder不见了(不是版本问题!!!)_threadfactorybuilder dependency not found-CSDN博客

Maven Repository: com.google.guava » guava » 33.2.1-jre (mvnrepository.com)

spring boot 集成http client

【HttpClient】在 SpringBoot 中使用 HttpClient 实现 HTTP 请求_springboot httpclient-CSDN博客

application.properties 中文乱码

解决中文乱码

如何处理从application.properties配置文件获取的汉字乱码问题_application.properties中文乱码-CSDN博客

Mybatis出现Mapped Statements collection already contains value for

  1. 参考

Mybatis出现Mapped Statements collection already contains value for_mybatis mapped statements collection alrea-CSDN博客

实际遇到的天坑:

错误配法:会引起 mpper.xml 多次被扫描


mybatis:
  mapper-locations: classpath:mappers/*Mapper.xml

正确配法

mybatis:
  mapper-locations: classpath:mappers/*Mapper

mybatis

批量更新

不要再写循环了!mybatis批量插入数据,批量更新集合list它不香吗?_mybatis replace list-CSDN博客

批量级联更新

【mybatis】mysql级联更新两个表或多张表的数据 - Angel挤一挤 - 博客园 (cnblogs.com)

【mybatis】mysql级联更新两个表或多张表的数据-CSDN博客

sqlite 不支持级联update join

sqlite多表关联update - 布鲁布鲁sky - 博客园 (cnblogs.com)

mybatis sqlite jdbc多表更新、删除的bug以及修复方法_sqlite 删除多张表无响应-CSDN博客