首页 > 其他分享 >springboot入门

springboot入门

时间:2024-09-23 15:50:25浏览次数:3  
标签:springboot spring 配置 boot 开发者 Boot Spring 入门

一、什么是springboot

提到springboot,首先就需要向大家介绍Spring框架。

Spring框架是一个广泛使用的开源Java平台,它提供了全面的基础设施支持,用于开发各种Java应用程序。Spring框架具有以下优势:

  1. 方便解耦,简化开发:Spring的控制反转(IoC)容器允许开发者将对象的创建和依赖关系管理交给框架,从而减少代码中的硬编码和提高模块间的解耦。

  2. AOP编程的支持:Spring的面向切面编程(AOP)支持使得开发者能够将横切关注点(如日志记录、事务管理等)与业务逻辑分离,提高了代码的模块化和可维护性。

  3. 声明式事务的支持:Spring提供了声明式事务管理,允许开发者通过注解或配置文件来管理事务,而不是编写复杂的事务代码,这简化了事务管理并减少了出错的可能性。

  4. 方便程序的测试:Spring支持非侵入式测试,使得单元测试和集成测试更加容易和高效。例如,Spring对JUnit的支持使得编写和执行测试变得更加方便。

  5. 方便集成各种优秀框架:Spring能够与许多其他框架(如Struts、MyBatis、Hessian、Quartz等)集成,提供了对这些框架的直接支持,简化了它们的使用。

  6. 降低Java EE API的使用难度:Spring对Java EE API(如JDBC、JavaMail、远程调用等)提供了简化的封装,使得这些API的使用更加直观和容易。

  7. Java 源码是经典学习范例:Spring的源码是Java设计模式和最佳实践的典范,学习和研究Spring的源码可以帮助开发者提高自己的技术水平。

接着,让我们来看看SpringBoot,

Spring Boot是一个基于Spring框架的开源项目,它的核心目标是简化Spring应用程序的创建、配置和部署流程。以下是Spring Boot的一些关键特性和优势:

  1. 快速开发:Spring Boot通过自动配置和约定大于配置的原则,帮助开发者快速搭建可以“运行”的Spring基础架构项目。

  2. 简化配置:采用“约定优于配置”的理念,自动配置项目所需的常用配置,减少了手动配置的工作量。

  3. 独立性:可以创建独立的、生产级别的基于Spring的应用,无需额外的服务器支持。

  4. 内置服务器:内嵌了Tomcat、Jetty或Undertow等Web服务器,无需单独安装和配置这些服务器,简化了开发、测试和部署过程。

  5. 自动配置:Spring Boot会根据项目中的依赖自动配置相应的组件,如数据库支持、安全性、日志记录和监控等。

  6. 微服务支持:与Spring Cloud集成,支持微服务架构的开发、部署和管理。

  7. 安全性:提供了对安全性的全面支持,包括OAuth2、用户认证和授权等。

  8. 测试支持:提供了对单元测试和集成测试的出色支持,确保代码的质量和稳定性。

  9. 文档和社区资源:拥有详尽的官方文档和丰富的社区资源,为开发者提供了大量的学习材料和解决方案。

  10. 云原生支持:提供了与云原生相关的功能,如容器化部署、服务网格集成等。

  11. 集成数据库操作:与Spring Data JPA等数据库操作框架的集成,简化了数据库操作。

  12. 国际化支持:提供了国际化支持,允许开发者根据用户的语言和地区设置来展示不同的内容。

  13. 异步和消息驱动:支持异步处理和消息驱动的特性,使得应用能够处理大量并发请求和复杂业务流程。

  14. 代码生成工具:提供了Spring Initializr这样的代码生成工具,简化了项目的初始化过程。

  15. 可配置性:提供了灵活的配置方式,允许开发者根据需要进行自定义配置。

  16. 与第三方库的集成:提供了与许多第三方库的集成支持,如Redis、MongoDB等。

  17. 热部署和热替换:支持热部署和热替换功能,提高了开发效率。

  18. 模块化设计:采用了模块化设计,使得开发者可以根据需求选择性地添加或移除模块。

  19. 扩展性和可维护性:通过清晰的分层架构和模块化设计,使得应用具有良好的扩展性和可维护性。

Spring Boot通过这些特性,提供了一种更快速、更高效的方式来构建Spring应用程序,无论是小型应用还是复杂的企业级应用,都能为开发者提供便利和效率。

简而言之就是高效易操作。

二、实践

为了体会到Spring Boot的便捷,以下是一个简单的实践。利用JAVA编写的,实现基础的入门。

新建maven工程(以maven的形式新建SpringBoot项目),选择骨架,点击webapps,单击next,根据需要一路点击下去。

接着,

  1. 引入依赖:在 pom.xml 文件中,首先引入Spring Boot的父项目依赖,这有助于管理项目中的版本冲突。接着,添加Web支持的依赖,以便可以构建Web应用程序。
<!-- 继承Spring Boot的父项目 -->
<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.2.4.RELEASE</version>
</parent>

<!-- 引入Web支持 -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 配置应用:在 src/main/resources 目录下创建一个 application.yml 配置文件。在这个文件中,我们可以指定应用程序的上下文路径,这样就可以自定义访问自己的Spring Boot应用的基本URL。
server:
  servlet:
    context-path: /springboot
  1. 创建入口类:开发Spring Boot的全局入口类,这个类是所有其他包的父包。在这个类中,我们将使用 @SpringBootApplication 注解来自动生成必要的配置,并使用 @RestController 定义RESTful端点。
package cn.ppdxzz;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;


@SpringBootApplication
@RestController
public class Application {
    public static void main(String[] args) {
        // 启动Spring Boot应用
        SpringApplication.run(Application.class, args);
    }

    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "SpringBoot") String name) {
        return String.format("Hello %s!", name);
    }
}
  1. 启动应用程序:运行应用程序,通常是通过在IDE中点击运行按钮或者在命令行中使用 mvn spring-boot:run 命令。

  2. 访问应用:在浏览器中输入 http://localhost:8080/springboot/hello,会看到输出的信息 "Hello SpringBoot!"。

这样,就完成了一个基本的Spring Boot应用程序的创建和运行。

三、SpringBoot与其他技术的整合

与Mybatis的整合

1. 添加Mybatis的起步依赖
 <!--mybatis起步依赖-->
 <dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.3.2</version>
 </dependency>
2. 添加数据库驱动坐标
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 </dependency>
3. 添加数据库的连接信息(在resources下的application.properties添加内容):
 # 数据库的连接信息
 spring.datasource.driverClassName=com.mysql.jdbc.Driver
 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8
 spring.datasource.username=root
 spring.datasource.password=nrblwbb7
4. 创建数据库和表结构:
 CREATE DATABASE test;
 USER test;
 DROP TABLE IF EXISTS `user`;
 CREATE TABLE `user` (
 `id` INT(11) NOT NULL AUTO_INCREMENT,
 `username` VARCHAR(50) DEFAULT NULL,
 `password` VARCHAR(50) DEFAULT NULL,
 `name` VARCHAR(50) DEFAULT NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=INNODB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
 INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '张三');
 INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四');
 SELECT * FROM USER;
5. 创建实体类
 public class User {
 // 主键
 private Long id;
 // 用户名
 private String username;
 // 密码
 private String password;
 // 姓名
 private String name;
 
 //此处省略getter和setter方法 .. ..
 }
6. 创建mapper接口
 public interface UserMapper {
 List<User> queryUserList();
 }
7. 创建映射配置文件(在resources下新建mapper文件夹,在下面创建UserMapper.xml)
 <?xml version="1.0" encoding="utf-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="cn.wzlove.mapper.UserMapper">
 <select id="queryUserList" resultType="user">
 select * from user
 </select>
 </mapper>
8. 配置文件配置mybatis的信息:
 #spring集成Mybatis环境
 #pojo别名扫描包
 mybatis.type-aliases-package=cn.wzlove.domain
 #加载Mybatis映射文件
 mybatis.mapper-locations=classpath:mapper/*Mapper.xml
9. 写个Controller进行代码测试
 @RestController
 public class Controller {
 
 @Autowired
 private UserMapper userMapper;
 
 @RequestMapping("mybatis")
 public String testMyBatis(){
 List<User> users = userMapper.queryUserList();
 System.out.println(users);
 return "success";
 
 }
 }

与Redis的整合

1. 配置redis的起步依赖:
 <!-- 配置使用redis启动器 -->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>
2. 配置redis的连接信息(本地需要安装有Redis)
 #Redis
 spring.redis.host=127.0.0.1
 spring.redis.port=6379
3. 编写测试类:
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = SpringbootSpringdatajpaApplication.class)
 public class RedisTest {
 
 // 转化成json各执字符串
 @Autowired
 private RedisTemplate<String,String> redisTemplate;
 
 @Autowired
 private UserRepository userRepository;
 
 @Test
 public void testRedis() throws JsonProcessingException {
 // 1. 从redis中获取数据,习惯json字符串
 String userListJson = redisTemplate.boundValueOps("user.findAll").get();
 // 2. 判断redis是否存在数据
 if(null == userListJson){
 // 3. 如果不存在数据,从数据库查询
 List<User> all = userRepository.findAll();
 // 将查询出的数据存储到缓存中
 // 先将集合转换成json格式的字符串, 使用jackson进行转换
 ObjectMapper objectMapper = new ObjectMapper();
 userListJson = objectMapper.writeValueAsString(all);
 redisTemplate.boundValueOps("user.findAll").set(userListJson);
 System.out.println("=============从数据库中查询=============");
 } else{
 System.out.println("从缓存中查询");
 }
 // 4. 如果存在,将结果返回(测试直接打印就好)
 System.out.println(userListJson);
 }
 
 }

标签:springboot,spring,配置,boot,开发者,Boot,Spring,入门
From: https://blog.csdn.net/HUOXINGRENhhh/article/details/142459732

相关文章

  • SpringBoot框架下的客户管理策略
    1绪论1.1研究背景随着网络不断的普及发展,企业客户管理系统依靠网络技术的支持得到了快速的发展,首先要从员工的实际需求出发,通过了解员工的需求开发出具有针对性的首页、个人中心、员工管理、客户信息管理、行业类型管理、项目信息管理、项目类型管理、项目收益管理功能,利......
  • PWA入门:手把手教你制作一个PWA应用
        根目录创建 manifest.json{"name":"我是pwa","short_name":"pwa是我","start_url":"/",//启动页面,如果首页是https://www.abc.com/,则直接用“/”即可"display":"standalone",......
  • ROS 编程入门的介绍
    2.1创建ROS功能包ROS(RobotOperatingSystem)是一种开源的机器人软件框架,广泛用于机器人开发中。通过使用ROS,开发者可以轻松创建和管理机器人应用程序。在本节中,我们将介绍如何创建一个ROS功能包并实现一些基本功能。2.1.1使用ROS主题ROS主题(Topic)是一种发布/订阅机制,允许......
  • 【PLW003】设备器材云端管理平台v1.0(SpringBoot+Mybatis+NodeJS+MySQL前后端分离)
    设备器材云端管理平台是一种专为各种设备(如教育行业中的实验设备、建筑行业中的施工设备等)租赁或共享孵化的数字化管理工具,旨在融合数字化手段,提高各种设备器材的管理效率、确保设备的安全稳定运行,并优化资源使用及配置效率。随着高新技术的不断发展和应用(如大数据、人工智能等新......
  • SpringBoot 初始化资源
    1、使用接口ApplicationRunner和CommandLineRunner这两个接口都是在容器运行后执行的,如下图示 如果项目需要在系统启动时,初始化资源,可以继承这两个接口,实现诸如缓存预热、DB连接等。实现ApplicationRunner接口@ComponentpublicclassMyApplicationRunnerimplementsApp......
  • 基于SpringBoot的公寓报修管理系统【附源码】
    基于SpringBoot的公寓报修管理系统(源码+L文+说明文档)    目录4系统设计  4.1 系统概要设计  4.2 系统功能结构设计  4.3 数据库设计  4.3.1 数据库E-R图设计  4.3.2数据库表结构设计  5 系统实现   5.1 住户管理  5.2 房间管理  ......
  • 基于SpringBoot的健身房管理系统【附源码】
    基于SpringBoot的健身房管理系统(源码+L文+说明文档)   目录4系统设计  4.1系统概述  4.2 系统结构设计  4.3功能结构设计  4.4.2数据库表结构  第5章系统实现   5.1管理员功能实现  5.1.1 健身房管理  5.1.2 器材信息管理  5.1.3器材......
  • 基于springboot+vue的高校学生考勤系统-可用于计算机毕设-课程设计-练手学习
    博主简介:......
  • kettle从入门到精通 第八十六课 ETL之kettle kettle调用https接口忽略SSL校验
     1、在使用kettle调用接口的时候不可避免要调用http或者https接口,调用http接口kettle可以正常工作,但是遇到https接口的时候kettle就会提示证书有误,无法正常调用接口,今天咱们一起通过自研插件的方式来解决这个问题。自研插件需要有一定的java基础,git上有比较多的例子,本次不讲解如......
  • 20年架构师用一文带你彻底搞懂SpringBoot嵌入式Web容器原理
    ContainerLess理念微服务把应用和它所依赖的组件包、配置文件及附带的运行脚本打包成一个单一、独立、可执行的jar包文件。在实现Web服务器时,几乎不需要任何配置就可以启动Tomcat。你只需要使用java-jar命令就可以让Tomcat成为SpringBoot的一个自包含的可运行组件和单元。同时,这......