赞
踩
目录
示例 1:Web 应用程序
通过 @SpringBootApplication
注解启动一个简单的 Web 应用程序:
- @SpringBootApplication
- public class MyApp {
- public static void main(String[] args) {
- SpringApplication.run(MyApp.class, args);
- }
- }
这个注解包含了 @Configuration
、@ComponentScan
和 @EnableAutoConfiguration
,从而简化了配置。
示例 2:Web 应用程序
使用 Spring Boot Starter Web,快速创建一个基本的 RESTful API:
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
这个 Starter 依赖包含了 Spring MVC、Tomcat 等必需的库,可快速搭建一个 Web 应用。
示例 3:数据库访问
添加 Spring Boot Starter Data JPA 依赖:
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
只需简单地配置数据源信息,Spring Boot 就会自动创建数据源和配置 JPA 等相关内容,无需手动配置大量的数据源和 EntityManager。
示例 4:配置文件
在 application.properties
或 application.yml
文件中配置数据库连接信息:
- spring.datasource.url=jdbc:mysql://localhost:3306/mydb
- spring.datasource.username=username
- spring.datasource.password=password
Spring Boot 会自动读取这些配置信息,并将其应用于相关的组件。
示例 5:RESTful Controller
使用 @RestController
注解创建一个简单的 REST 控制器:
- @RestController
- public class HelloController {
- @GetMapping("/hello")
- public String hello() {
- return "Hello, Spring Boot!";
- }
- }
这个简单的注解就能创建一个能够响应 HTTP GET 请求的控制器方法。
示例 6:监控和管理
Spring Boot 提供了诸如 /actuator/health
、/actuator/info
等端点,通过这些端点可以轻松地监控应用的健康状况和信息。
示例 7:Spring Security
通过引入 Spring Boot Starter Security,轻松实现身份验证和授权,比如:
- @EnableWebSecurity
- public class SecurityConfig extends WebSecurityConfigurerAdapter {
- // 省略其他配置
- }
前提:需要准备的环境
Spring boot 2.x需要JDK 1.8.0_201(以上版本)Spring boot3.x需要JDK17
Apache Maven 3.6.0(以上版本)
IntelliJ IDEA Ultimate旗舰版
通过官网下载https://www.oracle.com/java/technologies/downloads/
按步骤安装即可
环境变量配置
1. 打开高级系统设置
右击主机,选择“属性”选项可以快速打开
2. 打开环境变量
3. 新建系统变量
4. 新建JAVA_HOME变量,变量值为JDK安装路径
5. 在系统变量中找到Path变量进行编辑
6. 将刚才新建的JAVA_HOME变量加入其中
点击右边的新建即可
7. 利用CMD命令验证环境变量是否配置成功 java -version
快捷键:windows + R 然后输入 cmd 命令
环境变量配置说明
为什么需要配置环境变量?为了在命令行窗口下编译和运行Java程序。
我们所写的Java程序,都是保存在一个后缀名为.java的文件当中的,这个文件称之为源文件。源文
件并不能被执行,它需要首先被编译成二进制字节码文件,也就是后缀名为.class的文件。那么怎
样把源文件编译成二进制字节码文件呢?这时候就需要用到JDK当中提供的编译程序来完成这个任
务。编译程序是一个后缀为.exe的可执行文件,名字叫做javac,它存在于JDK安装路径下的bin文
件夹中。
我们的源文件文件有可能会被保存到磁盘上任何一个文件夹中。当我们在源文件所在的文件夹中
去调用javac编译程序,系统会发现根本就找不到这个它。
所以我们要设置在任何目录下都调用到该指定文件,为了在在任何文件夹下都调用到某一指定目
录下的文件,我们就应该配置环境变量(指定目录路径),让系统在你所配置的路径下去自己查找这
些文件然后运行
为什么需要新建JAVA_HOME变量?
方便引用
归一原则
当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对
路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩
溃!
第三方软件会引用约定好的JAVA_HOME变量
JDK1.5之前的JDK版本还需要CLASSPATH的配置
注意:maven的安装需要依赖jdk的安装,所以必须先安装完成jdk且配置好jdk环境变量后再进行maven的安装!!
通过官网下载https://maven.apache.org/download.cgi
按步骤安装即可
Maven环境变量配置步骤与JDK环境变量配置类似
官网下载的文件,注意路径要到无bin后缀的文件夹
添加环境变量
验证环境变量配置成功 mvn -v
配置maven中央仓库地址(参考https://blog.csdn.net/qq_47128897/article/details/131148421),中央
仓库是 Maven 的默认远程仓库,它包含了大量的开源 Java 项目和依赖库,我们可以通过 Maven 客户端
从中央仓库中下载需要的构建产物和依赖库,由于Maven默认的中央仓库地址较难访问,因此我们需要
配置国内镜像地址(镜像站,是指把现有的网站放在另外一个地方的服务器上的一个网站)提高下载速率,这里我们使用阿里云镜像。
打开你的maven配置文件找到 conf 文件夹
将下述代码复制到mirrors里,然后保存
- <mirror>
- <id>alimaven</id>
- <name>aliyun maven</name>
- <url>https://maven.aliyun.com/repository/central/</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
为了方便Spring boot的开发,我们需要旗舰版的IDEA
通过官网下载https://www.jetbrains.com/idea/download/
IDEA旗舰版激活方式
学生认证(https://www.jetbrains.com/shop/eform/students)
配置IDEA(以IDEA2023为例)
1. 对项目进行全局配置
2. 对Maven进行配置
完成到这里,Spring boot的环境配置完成了!
my-spring-boot-app/
└── src/
├── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── myapp/
│ │ ├── MySpringBootApplication.java // Spring Boot 应用入口
│ │ ├── controllers/ // 控制器层
│ │ │ └── MyController.java // REST 控制器
│ │ ├── services/ // 服务层
│ │ │ └── MyService.java // 服务类
│ │ └── repositories/ // 数据访问层
│ │ └── MyRepository.java // 数据访问接口
│ └── resources/
│ └── application.properties (或 application.yml) // 应用程序配置文件
└── test/
└── java/
└── com/
└── example/
└── myapp/
└── MySpringBootApplicationTests.java // 测试类
@SpringBootApplication
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
-
- @SpringBootApplication
- public class MySpringBootApplication {
- public static void main(String[] args) {
- SpringApplication.run(MySpringBootApplication.class, args);
- }
- }
@RestController
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- public class MyController {
- @GetMapping("/hello")
- public String hello() {
- return "Hello, Spring Boot!";
- }
- }
application.properties
- # 设置端口号
- server.port=8080
-
- # 数据库配置
- spring.datasource.url=jdbc:mysql://localhost:3306/mydb
- spring.datasource.username=root
- spring.datasource.password=root_password
服务(Service)
- import org.springframework.stereotype.Service;
-
- @Service
- public class MyService {
- public String getMessage() {
- return "Hello from MyService!";
- }
- }
依赖注入(Dependency Injection)
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- public class MyController {
- private final MyService myService;
-
- @Autowired
- public MyController(MyService myService) {
- this.myService = myService;
- }
-
- @GetMapping("/message")
- public String getMessage() {
- return myService.getMessage();
- }
- }
Spring Data Repository
- import org.springframework.data.jpa.repository.JpaRepository;
- import org.springframework.stereotype.Repository;
-
- @Repository
- public interface MyRepository extends JpaRepository<MyEntity, Long> {
- // 可以自定义查询方法
- }
b. 使用 Repository
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- public class MyController {
- private final MyRepository myRepository;
-
- @Autowired
- public MyController(MyRepository myRepository) {
- this.myRepository = myRepository;
- }
-
- @GetMapping("/entities")
- public List<MyEntity> getAllEntities() {
- return myRepository.findAll();
- }
- }
参考:ChatGPT
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。