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

春天(Spring Spring Boot)

基本概念

春天

Spring 是用于开发 Java 应用程序的开源框架,为解决企业应用开发的复杂性而创建。

  1. Spring 的基本设计思想是利用 IOC(依赖注入)和 AOP (面向切面)解耦应用组件,降低应用程序各组件之间的耦合度。
  2. 在这两者的基础上,Spring 逐渐衍生出了其他的高级功能:如 Security,JPA 等。

Spring MVC

Spring MVC 是 Spring 的子功能模块,专用于 Web 开发。

Spring MVC 基于 Servlet 实现,将 Web 应用中的数据业务、显示逻辑和控制逻辑进行分层设计。开发者可以直接调用 Spring MVC 框架中 Spring 解耦的组件,快速构建 Web 应用。

Spring 引导

Spring Boot 是用于简化创建 Spring 项目配置流程,快速构建 Spring 应用程序的辅助工具。Spring Boot 本身并不提供 Spring 框架的核心特性以及扩展功能。但 在创建 Spring 项目时,Spring Boot 可以:

  1. 自动添加 Maven 依赖,不需要在 pom.xml 中手动添加配置依赖。
  2. 不需要配置 XML 文件,将全部配置浓缩在一个 appliaction.yml 配置文件中。
  3. 自动创建启动类,代表着本工程项目和服务器的启动加载。
  4. 内嵌 Tomcat 、Jetty 等容器,无需手动部署 war 文件。

Spring Boot 配置

依赖

在Spring Boot中,引入的所有包都是 starter 形式:

spring-boot-starter-web-services,针对 SOAP Web Services spring-boot-starter-web,针对 Web 应用与网络接口 spring-boot-starter-jdbc,针对 JDBC spring-boot-starter-data-jpa,基于 Hibernate 的持久层框架 spring-boot-starter-cache,针对缓存支持

默认映射路径

  • classpath:/META-INF/resources/
  • classpath:/resources/
  • classpath:/static/
  • classpath:/public/

优先级顺序:META-INF/resources > 资源 > static > public

全局配置

位于 resources 文件夹下,支持以下两种格式。由 Spring Boot 自动加载。

  1. application.properties
  2. application.yml
#端口号
server.port=8080
#访问前缀
server.servlet.context-path=/demo
#端口号
server.port=8080
#访问前缀
server.servlet.context-path=/demo#数据库驱动
jdbc.driver=com.mysql.jc.jdbc.Driver
#数据库链接
jdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
#数据库用户名
jdbc.username=root
#数据库密码
jdbc.password=wdh19970506#Mybatis
#配置文件路径
mybatis_config_file=mybatis-config.xml
#SQL语句配置路径
mapper_path=/mapper/**.xml
#实体类所在包
type_alias_package=com.example.demo.entity
 
  • JDBC 连接 Mysql5 驱动: com.mysql.jdbc.Driver
  • JDBC 连接 Mysql6 驱动: com.mysql.cj.jdbc.Driver , URL 必须要指定时区 serverTimezone !

多重配置

在 Spring Boot 中,我们往往需要配置多个不同的配置文件去适应不同的环境:

  • application-dev.properties开发环境
  • application-test.properties测试环境
  • application-prod.properties生产环境

只需要在程序默认配置文件 中设置环境,就可以使用指定的配置。application.properties

spring.profiles.active=dev

启动类

@SpringBootApplication类:作为程序入口,在创建 Spring Boot 项目时自动创建。

等同于 + + ,会自动完成配置并扫描路径下所有包。@Configuration@EnableAutoConfiguration@ComponentScan

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

Spring 需要定义调度程序 servlet ,映射和其他支持配置。我们可以使用 web.xml 文件或 Initializer 类来完成此操作:

public class MyWebAppInitializer implements WebApplicationInitializer {@Overridepublic void onStartup(ServletContext container) {AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();context.setConfigLocation("com.pingfangushi");container.addListener(new ContextLoaderListener(context));ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet(context));dispatcher.setLoadOnStartup(1);dispatcher.addMapping("/");}
}

还需要将 注释添加到 类,并定义一个视图解析器来解析从控制器返回的视图:@EnableWebMvc@Configuration

@EnableWebMvc
@Configuration
public class ClientWebConfig implements WebMvcConfigurer { @Beanpublic ViewResolver viewResolver() {InternalResourceViewResolver bean= new InternalResourceViewResolver();bean.setViewClass(JstlView.class);bean.setPrefix("/WEB-INF/view/");bean.setSuffix(".jsp");return bean;}
}

http://www.lryc.cn/news/439093.html

相关文章:

  • Oracle EBS AP预付款行分配行剩余预付金额数据修复
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战7-ArkTS语法进阶
  • Java设计模式—面向对象设计原则(六) ----->合成复用原则(CRP) (完整详解,附有代码+案例)
  • java坏境搭建
  • C#中判断socket是否已断开的方法
  • Python编程 - 异常处理与文件读写
  • 【C++】c++ 11
  • uni-app 应用名称 跟随系统语言 改变
  • 【大模型实战篇】高质量数据过滤及一种BoostedBaggingFilter处理方法的介绍
  • 使用Python和Proxy302代理IP高效采集Bing图片
  • Python酷库之旅-第三方库Pandas(118)
  • 讨论人机交互研究中大语言模型的整合与伦理问题
  • OpenCV结构分析与形状描述符(23)确定一个点是否位于多边形内的函数pointPolygonTest()的使用
  • GitLab CI_CD 从入门到实战笔记
  • 微服务实战系列之玩转Docker(十五)
  • 本地调试spark,访问kerberos鉴权的hdfs、hive
  • Ubuntu 安装包下载(以20版本 阿里镜像站为例子)
  • 会声会影Corel VideoStudio2025旗舰版最新中文旗舰版新功能讲解及使用会声会影使用教程
  • 【人工智能】OpenAI发布GPT-o1模型:推理能力的革命性突破,这将再次刷新编程领域的格局!
  • 2024年TCGA基因表达数据下载(最新版)
  • 1. 运动控制指令概要(omron 机器自动化控制器)
  • 依赖注入(Dependency Injection)
  • PHP环境搭建
  • 小叶OJ 2716: 过河问题 ← 贪心算法
  • LeetCode509:斐波那契数列
  • 5G前传-介绍
  • 【Python机器学习】循环神经网络(RNN)——超参数
  • 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树
  • Node.js的学习2——内置模块(一)
  • 信息安全工程师(5)域名与域名解析