当前位置: 首页 > news >正文

Spring Boot 配置全流程 总结

1. 简介

Springboot可以简化SSM的配置,提高开发效率。

2. 代码

在pom.xml中添加:

<parent><!-- 包含SSM常用依赖项 --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version>
</parent><dependencies><dependency><!-- 启动器,包含SSM常用依赖项 --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

在Main.java中添加:

@SpringBootApplication
public class Main {public static void main(String[] args) {SpringApplication.run(Main.class,args);//自动创建ioc容器,启动内置tomcat}
}

创建统一配置文件:
resources/application.properties:

# 使用内置配置项
# 重设默认端口8080
server.port = 8081
# 重设默认根路径/
server.servlet.context-path=/good# 自定义配置
good.name = jojo

或者application.yaml文件:

# 层次化结果,通过缩进解决包含关系
server:port: 80servlet:context-path: /bookgood:name: jojo

创建业务:

@RestController
@RequestMapping("hello")
//@ConfigurationProperties(prefix = "good")也可以通过注解获取配置文件中的自定义变量,可以读取集合,不需要@Value注解,注意必须包含前缀和变量同名
public class HelloController {@Value("${good.name}")//直接访问统一配置文件中的自定义变量,不能读取集合private String name;@GetMapping("good")public String good(){System.out.println(goodName);return "hello";}
}

3. 配置文件选择

在application.yaml包含:

#同时激活application-test.yaml和application-dev.yaml的配置
spring:profiles:active: test,dev

在application-test.yaml包含:

good:name: dev

在application-dev.yaml包含:

good:id: 1234

也可以二选一:
在application.yaml包含:

#只激活application-test.yaml
spring:profiles:active: test

如果属性重复以最后包含的文件为准。

4. 静态资源

静态资源可放在/resources/static下。访问时不用写static前缀。

5. 拦截类

拦截类还是需要自己添加配置类:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyInterceptor());}
}

6. Mybatis

在pom.xml加入依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.18</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency></dependencies>

Main.java:

@MapperScan("com.jojo.mapper") //mapper接口所在的的位置
@SpringBootApplication
public class Main {public static void main(String[] args) {SpringApplication.run(Main.class,args);}
}

application.yaml:

mybatis:mapper-locations: classpath:/mappers/*.xml  #指定xml文件的位置type-aliases-package: com.jojo.pojoconfiguration:map-underscore-to-camel-case: trueauto-mapping-behavior: fulllog-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl

7. 声明式事务

在pom.xml加入以下依赖后,就可以使用@Transactional了

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

8. AOP

在pom.xml加入以下依赖后,正常创建切面类就行

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

9. 打包

在pom.xml加入以下插件

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

在Maven中点击package命令:
在这里插入图片描述
将target中生成的jar包拷贝到服务器,执行以下命令就可独立运行了:

java -jar xxx.jar

也可以修改yaml中的参数,如修改port号,切换yaml文件等:

 java -jar -Dserver.port=1234 -Dspring.profiles.active:test xxx.jar
http://www.lryc.cn/news/446012.html

相关文章:

  • 爬虫技术初步自学
  • 【力扣 | SQL题 | 每日三题】力扣175, 176, 181
  • SpringBoot使用hutool操作FTP
  • 如何防止SQL注入攻击
  • Java List类
  • 使用 Internet 共享 (ICS) 方式分配ip
  • SMTP/IMAP服务发在线邮件时要用到
  • Threejs绘制圆锥体
  • 速通LLaMA3:《The Llama 3 Herd of Models》全文解读
  • Python网络爬虫获取Wallhaven壁纸图片(源码)
  • 智能化引领等保测评新时代:AI与大数据的深度融合
  • 深入解析:HTTP 和 HTTPS 的区别
  • 《动手学深度学习》笔记1.11——实战Kaggle比赛:预测房价+详细代码讲解
  • 数据结构:单链表实现信息管理
  • 【Linux】解锁文件描述符奥秘,高效缓存区的实战技巧
  • EmguCV学习笔记 VB.Net 11.9 姿势识别 OpenPose
  • 2024.9.26 Spark学习
  • 我与Linux的爱恋:进程地址空间
  • C++的哲学思想
  • IO(输入输出流)
  • python爬虫:从12306网站获取火车站信息
  • Android个性名片界面的设计——约束布局的应用
  • Python 课程18-SQLAlchemy
  • Module did not self-register: ‘drivelist.node‘报错解决
  • zabbix基本概念与组件
  • Linux常用网络工具及示例
  • Go容器化微服务系统实战
  • 研究生三年概括
  • MongoDB在Linux系统中的安装与配置指南
  • Linux下如何实现不用加路径调用启动脚本