IDE

首先得安装JDK,然后添加环境变量
然后安装IDE 

https://www.jetbrains.com.cn/idea/

社区版 - windows 
https://download.jetbrains.com.cn/idea/ideaIC-2023.1.1.exe

idea 安装 - ubantu

 
cp ideaIC-2023.1.1.tar.gz /opt/app/
cd /opt/app/
tar -xvf ideaIC-2023.1.1.tar.gz
cd idea-IC-231.8770.65/bin
sh idea.sh

添加别名
alias idea="/opt/app/idea-IC-231.8770.65/bin/idea.sh &"

vscode配置java

 
    https://www.cnblogs.com/ievjai/p/14382997.html
    https://blog.csdn.net/weixin_39142884/article/details/133032864
    https://blog.51cto.com/u_11377693/11633703

    mvn spring-boot:run

JDK安装

 
https://www.jetbrains.com.cn/idea/

jdk9之前 
https://openjdk.org/install/

新版 
https://jdk.java.net/

https://jdk.java.net/java-se-ri/11-MR3

https://download.java.net/openjdk/jdk11.0.0.2/ri/openjdk-11.0.0.2_windows-x64.zip

https://download.java.net/openjdk/jdk11.0.0.2/ri/openjdk-11.0.0.2_linux-x64.tar.gz

https://download.java.net/openjdk/jdk21/ri/openjdk-21+35_linux-x64_bin.tar.gz


https://openjdk.org/
https://openjdk.org/projects/jdk/23/

https://jdk.java.net/java-se-ri/21

wget https://download.java.net/openjdk/jdk23/ri/openjdk-23+37_linux-x64_bin.tar.gz

https://download.java.net/openjdk/jdk23/ri/openjdk-23+37_windows-x64_bin.zip

https://download.java.net/openjdk/jdk21/ri/openjdk-21+35_linux-x64_bin.tar.gz

https://download.java.net/openjdk/jdk21/ri/openjdk-21+35_windows-x64_bin.zip

linux JDK安装

 
    
下载,解压,配置环境变量

export JAVA_HOME=/opt/app/jdk8
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH


 

    

 
wget https://download.java.net/openjdk/jdk23/ri/openjdk-23+37_linux-x64_bin.tar.gz

jdk23新版本尝试,新建个独立的环境

adduser spring 

/home/spring/app/jdk-23

 
vim ~/.bashrc
export JAVA_HOME=/home/spring/app/jdk-23
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

. ~/.bashrc

 
spring@kl:~/app/jdk-23$ java -version
openjdk version "23" 2024-09-17
OpenJDK Runtime Environment (build 23+37-2369)
OpenJDK 64-Bit Server VM (build 23+37-2369, mixed mode, sharing)

 


 


 

  

 


mvn安装

linux mvn安装

 
https://maven.apache.org
点击下载

Maven 3.8+ requires JDK 1.7 or above to execute
Maven 3.9+ requires JDK 8 or above to execute.

windows选择zip版本,linux选择tar.gz

# vim /etc/profile
export MAVEN_HOME=/opt/app/apache-maven-3.9.1
export PATH=$MAVEN_HOME/bin:$PATH

# source /etc/profile
# mvn -version
Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
Maven home: /opt/app/apache-maven-3.9.1
Java version: 1.8.0_231, vendor: Oracle Corporation, runtime: /opt/app/jdk8/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.19.0-35-generic", arch: "amd64", family: "unix"


bin目录 : 可执行命令。
conf目录 :Maven配置文件, 比如settings.xml
lib目录 :Maven依赖的jar包。Maven由java开发,依赖其他jar包

maven 本地仓库

 
conf/settings.xml中标签localRepository指向的目录就是 本地仓库
将来下载的jar包会放到这个目录下

创建本地目录
mkdir /opt/app/apache-maven-3.9.1/repo

设置目录为本地仓库
$ vim conf/settings.xml
<localRepository>/opt/app/apache-maven-3.9.1/repo</localRepository>

添加国内镜像

 
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

<mirror>
    <id>nexus-tencentyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus tencentyun</name>
    <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>

这两个镜像二选一即可,另外一个收藏,不好用时,换一换试试 

maven中央仓库

 
    https://mvnrepository.com/

maven重新下载依赖

命令行执行 
mvn dependency:purge-local-repository

图形界面上,右键Maven-->Reload project 

mvn clean install

 
有一些java代码提交的github,可以直接使用mvn生成一个jar包,比如
git clone https://github.com/jpmml/jpmml-sklearn.git
cd jpmml-sklearn
mvn clean install

生成jar文件
pmml-sklearn/target/pmml-sklearn-1.7-SNAPSHOT.jar

生成可执行jar文件
pmml-sklearn-example/target/pmml-sklearn-example-executable-1.7-SNAPSHOT.jar

测试
$ java -jar ./pmml-sklearn-example-executable-1.7-SNAPSHOT.jar --pkl-input tree3.pkl --pmml-output tree3.pmml


mvn clean package依次执行了
clean,resources,compile,testResources,testCompile,test,jar(打包)等7个阶段。

mvn clean install依次执行了
clean,resources,compile,testResources,testCompile,test,jar(打包),install等8个阶段。

mvn clean deploy依次执行了
clean,resources,compile,testResources,testCompile,test,jar(打包),install,deploy等9个阶段。

分析解释如下:
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库  

 

    

 
https://download-cdn.jetbrains.com/idea/ideaIC-2024.1.4.exe
https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.zip

 
选择一个合适的目录来解压Maven安装包,建议选择一个没有中文、特殊字符的路径,
例如D:\Program Files\apache-maven-3.9.5(版本号需与下载的版本一致)。

配置环境变量
新建MAVEN_HOME环境变量:
右击“此电脑”或“我的电脑”,选择“属性”。
点击“高级系统设置” -> “环境变量”。
在“系统变量”区域点击“新建”,变量名填写MAVEN_HOME,变量值填写你解压Maven的目录路径,例如D:\Program Files\apache-maven-3.9.5。

编辑Path环境变量:
在“系统变量”中找到Path变量,点击“编辑”。
点击“新建”,添加%MAVEN_HOME%\bin到Path变量中。
确认所有更改。

MAVEN_HOME=C:\wks\java\app\apache-maven-3.9.8
%MAVEN_HOME%\bin
    

 
验证Maven安装
打开命令提示符:
按下Win + R键,输入cmd,然后按回车打开命令提示符。
验证Maven版本:
在命令提示符中输入mvn -v或mvn --version,然后按回车。
如果Maven安装成功,你将看到Maven的版本信息以及Java环境配置(需要已安装JDK并配置JAVA_HOME环境变量)。
    
C:\Users\83933>mvn -v
Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: C:\wks\java\app\apache-maven-3.9.8
Java version: 11.0.23, vendor: Microsoft, runtime: C:\Program Files\Microsoft\jdk-11.0.23.9-hotspot
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"

 
配置Maven仓库(可选)
配置本地仓库:
Maven默认会在用户目录下的.m2文件夹中创建本地仓库。你可以通过修改Maven的settings.xml配置文件来更改本地仓库的位置。
找到Maven安装目录下的conf文件夹中的settings.xml文件,打开并编辑。
在<settings>标签内找到<localRepository>标签(如果没有,则手动添加),并设置为你希望作为本地仓库的目录路径。
配置镜像仓库:
由于Maven的中央仓库在国外,下载速度可能较慢,可以配置国内镜像仓库以提高下载速度。
同样在settings.xml文件中,找到标签,并添加相应的镜像配置。例如,使用阿里云镜像:
    
<mirror>  
    <id>alimaven</id>  
    <mirrorOf>central</mirrorOf>  
    <name>aliyun maven</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
</mirror>

 
<localRepository>C:\wks\java\app\apache-maven-3.9.8\repo</localRepository>

 

 

  

 


创建maven项目

idea中创建maven项目

 
Archetype::maven-archetype-quickstart

点击创建会在项目目录下创建一个pom.xml,
后台会自动下载一系列jar包

修改idea中maven源位置

 
社区版的路径如下:

File -- new Projects Setup -- Setting for new Projects 

Build,Execution,Deployment -- Build Tools -- Maven 

Maven home path: /opt/app/apache-maven-3.9.1
User setting file: 要先勾选Override 
Local repository: 勾选Override,选择本地maven配置的库 

pom.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>m1</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>
    

依赖包下载

 
groupId      Maven组织名称,通常是公司域名
artifactId   项目名称
version      项目版本

项目打包发布时,这三者可以唯一确定一个项目 
引用外部依赖时,要引用哪个依赖,也是通过这三个标记确定

<dependencies>
    <dependency>
    <groupId>ai.djl.pytorch</groupId>
    <artifactId>pytorch-engine</artifactId>
    <version>0.22.1</version>
    <scope>runtime</scope>
    </dependency>
</dependencies>

在pom.xml文件上右键-->Maven-->Reload project 可重新下载依赖包 

 

    

命令行创建maven项目

 
mvn archetype:generate -DgroupId=org.test -DartifactId=pname -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

$ tree pname/
pname/
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── org
    │           └── test
    │               └── App.java
    └── test
        └── java
            └── org
                └── test
                    └── AppTest.java

9 directories, 3 files


打包运行

 
cd pname/
mvn clean package
cd target/classes/
java org.test.App

输出
Hello World!

打好的jar包在target目录下 
target/pname-1.0-SNAPSHOT.jar

 

    

 
确保项目配置的mvn目录正确,否则可能出现找不到命令的情况

 
mvn clean install 

注意命令行中的mvn是否与项目配置的mvn是一个命令

 


 


 

  

 


spring boot项目

 
spring boot demo

demo可以从官网下载

https://start.spring.io/

这里选择maven,注意选择对应的JDK版本
    

设置JDK

 
JDK17是最近的长期支持的版本,到2029年

这里选择的是JDK17的版本,所以设置项目使用JDK17的版本
    

 

    

 

    

配置数据源

 
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
    

 
首先,你需要在你的Spring Boot应用中添加一个JdbcTemplate的bean。
但是,在大多数情况下,如果你已经在pom.xml中添加了spring-boot-starter-jdbc依赖,
Spring Boot会自动为你配置一个JdbcTemplate bean。
    

 
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.jdbc.core.JdbcTemplate;  
import org.springframework.stereotype.Repository;  
    
@Repository  
public class UserDao {  
    
    private final JdbcTemplate jdbcTemplate;  
    
    @Autowired  
    public UserDao(JdbcTemplate jdbcTemplate) {  
        this.jdbcTemplate = jdbcTemplate;  
    }  
    
    public User findUserById(int id) {  
        String sql = "SELECT * FROM users WHERE id = ?";  
        return jdbcTemplate.queryForObject(sql, new Object[]{id}, (rs, rowNum) -> {  
            User user = new User();  
            user.setId(rs.getInt("id"));  
            user.setName(rs.getString("name"));  
            // 设置其他属性...  
            return user;  
        });  
    }  
    
    // 你可以添加更多方法来执行其他数据库操作  
}
    

Repository注释

 
Repository注释(在Spring框架中通常指的是@Repository注解)的作用主要体现在以下几个方面:

1. 标识数据访问对象
@Repository注解用于标识数据访问对象(DAO),
即那些与数据库进行交互的类。它告诉Spring框架这个类是一个数据访问层的组件,
需要被Spring容器管理。这样,Spring就可以为这些类创建实例,
并将其纳入到Spring的上下文中进行统一管理。

2. 异常转换
当在@Repository注解标记的类中出现数据库异常时,
Spring会自动将这些数据访问异常转换为Spring的统一数据访问异常(如DataAccessException)。这种异常转换使得上层应用可以更方便地处理和捕获异常,而不需要关心具体的数据库异常类型。

3. 事务管理
@Repository注解通常与Spring的事务管理一起使用。
当一个带有@Repository注解的方法被调用时,
Spring会自动在方法执行前开启一个事务,
并在方法执行后根据方法的执行情况(如是否抛出异常)来决定事务的提交或回滚。
这样,开发者就可以在数据访问层的方法中方便地利用Spring的事务管理功能,
而不需要编写额外的事务管理代码。

4. 专用注解
@Repository注解是Spring框架提供的一个专用注解,用于替代更通用的@Component注解。
使用@Repository注解可以更清晰地表明类的职责是数据访问,从而有助于提升代码的可读性和可维护性。

5. 简化开发
通过使用@Repository注解,开发者可以更加简便地实现数据访问层的开发。
他们不需要编写繁琐的XML配置文件来声明DAO类的bean,
也不需要在Spring的配置文件中显式地指定DAO类的实现类。
相反,他们只需要在DAO类上添加@Repository注解,
并确保Spring的自动扫描功能已经启用,
Spring就会自动扫描到这些类,并为它们创建实例和进行依赖注入。

综上所述,@Repository注解在Spring框架中扮演着非常重要的角色,
它简化了数据访问层的开发过程,并提供了异常转换和事务管理等额外功能,
使得数据访问层的开发更加方便和高效。

    

 


 


 
import com.dbm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    private final UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping("/users/{id}")
    public String test(@PathVariable int id) {
        return userService.getUserById(id).toString();
    }

    @GetMapping("/test")
    public String test() {
        return "1000";
    }
    @GetMapping("/mid")
    public String maxId() {
        Long mid = userService.getMaxId();

        return ""+mid;
    }
    // 你可以添加更多请求处理方法...
}
    

 
在Spring Boot项目中,UserController这样的控制类(Controller)
通常不需要在WEB-INF目录下的任何文件(如web.xml)中进行配置。
Spring Boot的设计理念之一就是“约定优于配置”(Convention Over Configuration),
它通过使用注解(如@Controller、@RestController等)和自动配置来简化Web应用的开发。

对于UserController,你只需要确保它位于Spring Boot的组件扫描路径下
(默认情况下,Spring Boot会扫描主应用类所在的包及其子包中的所有组件),
并且类上使用了正确的注解(如@RestController或@Controller)来标记它是一个控制器。

 
要确保UserController(或任何其他Spring Boot组件)位于Spring Boot的组件扫描路径下:

检查主应用类上的注解
Spring Boot的主应用类(通常是包含main方法的类)上会使用@SpringBootApplication注解。
这个注解是@Configuration、@EnableAutoConfiguration和@ComponentScan的组合注解。
其中,@ComponentScan注解用于指定Spring Boot的组件扫描路径。

默认情况:
如果没有显式指定@ComponentScan的basePackages或basePackageClasses属性,
Spring Boot将默认扫描主应用类所在的包及其子包中的所有组件。

显式指定:
如果@ComponentScan注解中显式指定了扫描路径,那么只有这些路径下的组件才会被扫描到。

 
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

 

  

 


mybatis

 
<?xml version="1.0" encoding="UTF-8"?>
<!--

        Copyright 2015-2023 the original author or authors.

        Licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License.
        You may obtain a copy of the License at

            https://www.apache.org/licenses/LICENSE-2.0

        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot</artifactId>
    <version>3.0.3</version>
    </parent>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <name>mybatis-spring-boot-starter</name>
    <properties>
    <module.name>org.mybatis.spring.boot.starter</module.name>
    </properties>
    <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
    </dependency>
    </dependencies>
</project>

    

 
查看相关版本
https://central.sonatype.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/versions

    

 

    

 

    

 


 

  

 


参考