首先得安装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
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) |
|
|
|
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文件中,找到 <localRepository>C:\wks\java\app\apache-maven-3.9.8\repo</localRepository> |
|
|
|
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 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); } } |
|
|
<?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 |
|
|
|
|