Springboot入门及搭建SSM

前言

本章整理一下Spring boot的知识点,原理部分就暂不记录了,只是针对springboot的入门以及搭建ssm框架。
上一章刚刚使用原生方法整合了spring、springMVC、mybaits( 基于Eclipse搭建SSM框架),正好可以对比一下,看看Spring boot的魅力。

Spring Boot入门

一、什么是Spring Boot

Spring Boot 是Spring生态圈的顶层项目,其设计目的是用来简化新Spring应用的初始搭建和开发过程。该框架使用特定的方式来配置,不用开发人员再进行样板化的配置。
其实,Spring Boot也不算是新的框架,他是整合了其他的框架,并进行统一的配置。更像是一个工具,有点类似于Maven对jar包的管理。他是对框架的整合。
使得应用创建更简单、编码更简单、配置更简单、部署更简单、监控更简单。

二、使用Spring Boot的优缺点

优点:

  • 快速构建项目
  • 极大提高了开发、部署效率
  • 对主流框架无配置集成
  • 项目独立运行,无需外部依赖Servlet容器
  • 提供运行时的应用监控
  • 与云计算天然集成

缺点:

  • 版本更新较快
  • 因为无需自己配置,错误跟踪较麻烦
  • 网络上解决方法较少

三、什么是微服务Microservice

微服务(英语:Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic)的API集相互通信。----维基百科
而SpringBoot就能够适用于微服务架构。

四、Spring Boot核心功能

1)独立运行的 Spring 项目
Spring Boot 可以以 jar 包的形式独立运行,运行一个 Spring Boot 项目只需通过 java–jar xx.jar 来运行。
2)内嵌 Servlet 容器
Spring Boot 可选择内嵌 Tomcat、Jetty 或者 Undertow,这样我们无须以 war 包形式部署项目。
3)提供 starter 简化 Maven 配置
Spring 提供了一系列的 starter pom 来简化 Maven 的依赖加载,例如,当你使用了spring-boot-starter-web 时,会自动加入如图 1 所示的依赖包。
4)自动配置 Spring
Spring Boot 会根据在类路径中的 jar 包、类,为 jar 包里的类自动配置 Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot 只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置 Bean,而 Spring Boot 没有提供支持,则可以自定义自动配置。
5)准生产的应用监控
Spring Boot 提供基于 http、ssh、telnet 对运行时的项目进行监控。
6)无代码生成和 xml 配置
Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新特性。Spring 4.x 提倡使用 Java 配置和注解配置组合,而 Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。

五、Spring Boot常用注解

@SpringBootApplication:
包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上;

@Repository:
用于标注数据访问组件,即DAO组件;

@Service:
用于标注业务层组件;

@RestController:
用于标注控制层组件(如struts中的action),包含@Controller和@ResponseBody;

@Controller:
用于标注是控制层组件,需要返回页面时请用@Controller而不是@RestController;

@Component:
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注;

@ResponseBody:
表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,

加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中;比如异步获取json数据,加上@responsebody后,会直接返回json数据;

@RequestBody:
参数前加上这个注解之后,认为该参数必填。表示接受json字符串转为对象 List等;

@ComponentScan:
组件扫描。个人理解相当于,如果扫描到有@Component @Controller @Service等这些注解的类,则把这些类注册为bean*;

@Configuration:
指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上;

@Bean:
相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理;

@EnableAutoConfiguration:
让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上;

@AutoWired:
byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作;

当加上(required=false)时,就算找不到bean也不报错;

@Qualifier:
当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用;

@Resource(name=”name”,type=”type”):
没有括号内内容的话,默认byName。与@Autowired干类似的事;

@RequestMapping:
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;

该注解有六个属性:

params:指定request中必须包含某些参数值是,才让该方法处理。

headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

value:指定请求的实际地址,指定的地址可以是URI Template 模式

method:指定请求的method类型, GET、POST、PUT、DELETE等

consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;

produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。

@GetMapping、@PostMapping等:
相当于@RequestMapping(value=”/”,method=RequestMethod.GetPostPutDelete等) 。是个组合注解;

@RequestParam:
用在方法的参数前面。相当于 request.getParameter;

@PathVariable:
路径变量。如 RequestMapping(“user/get/mac/{macAddress}”) ;

@Entity:
@Table(name=”“):
表明这是一个实体类。一般用于jpa ,这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略;

@Column:
如果字段名与列名相同,则可以省略;

@Id:
表示该属性为主键;

Spring boot搭建SSM

1.创建项目

创建一个springboot项目。SDK根据各自实际情况选择。
在这里插入图片描述
这里选择Maven,并注意java版本。
查看自己的java版本在cmd界面输入java -version查看。
在这里插入图片描述
这个界面也是根据个人需求进行添加,特别是lombok,有些公司就是不允许的,这里做测试,倒是无所谓。
在这里插入图片描述
然后下一步,完成创建,等待依赖的加载。

项目结构如下:
在这里插入图片描述

多余不需要的可以删除。

通过上图我们可以发现,在boot_hello包下有一个BootHelloApplication文件,该文件就是我们springboot的主程序类。也是程序的入口。代码如下:

@SpringBootApplication
public class BootHelloApplication {

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

}

在resource文件夹下是放我们的静态文件以及配置文件的。
static:存放静态文件,比如js,css,图片等。
templates:存放html等。
application.properties:是系统的配置文件,我们可以通过它修改boot项目所有的默认配置项。我们也可以配置一些其他的配置文件,格式分为.properties、.yaml、.yml。名称为application-*。比如application-mybatis.properties等,当然了,这只是方便我们用户使用,我们所有的文件完全是可以全部放在application.properties中的。
pom.xml:是maven的依赖文件。我们所有的依赖通过它导入。如下:
在这里插入图片描述

我们的springboot是管理很多依赖的,因此需要加什么依赖完全可以只写groupId和artifactId,不用管理版本。当然了,如果版本和他管理的版本不一致,我们也是可以在这里修改的。可以通过直接写在相应的dependency标签下,也可以单独写出来统一管理,但是我觉得最好还是写在一起,因为单独管理看着是很明了整洁,但是很多时候如果我们要修改还需要来回的拉动,很可能就忘记了要修改版本号了。当然,这是个人感觉。

2.配置参数

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.username=zdl
spring.datasource.password=zhangdl

3.逻辑代码

dao:因为支持测试,业务需求简单,此处使用注解,就没有使用xml映射。

@Mapper
public interface EmpDao {

    @Select("select * from emp")
    public List<Emp> selectAll();

}

service及其实现类

public interface EmpService {
    public List<Emp> selectAll();
}
@Service
public class EmpServiceImpl implements EmpService {

    @Autowired
    private EmpDao empDao;

    @Override
    public List<Emp> selectAll() {
        return empDao.selectAll();
    }
}

controller:因为是想将结果以字符串的方式返回,此处就是用了@RestController.他是一个组合注解,主要包含两个@Controller
@ResponseBody

@RestController
public class HelloController {

    @Autowired
    private EmpService empService;

    @RequestMapping("/selectAll")
    public String selectAllEmp(){
        return empService.selectAll().toString();
    }
}

4.测试结果

[Emp(id=1, name=zs, age=20, sex=true), Emp(id=2, name=ls, age=18, sex=false)]

Spring Boot简单原理

大致分为两类:起步依赖和自动配置。这里简单说明一下。

1. 起步依赖

我们打开上面项目的pom.xml文件,可以看到该文件中是我们项目的相关配置,有我们的依赖、场景启动器、项目信息等。这里的场景启动器稍后会说明一下。可以看到有一个parent标签里有一个spring-boot-starter-parent,它相当于springboot的父项目,它里面是父项目的相关依赖,以及配置文件的设置,如下。
在这里插入图片描述
这里规定了项目的配置文件为以application开头,后缀为yml、yaml和properties。比如application.yaml、application-mybatis.yml等。
当前配置中还有如下配置:
在这里插入图片描述
这是当前项目的父项目,可以理解为springboot的爷爷。大致代码如下:
在这里插入图片描述
在这里插入图片描述
可以看出这里配置了大量的依赖。将maven集成的jar都列举在这里,进行统一的版本控制。
如果自己的项目想使用除此之外的依赖或者不同的版本,就需要单独编写,否者,只需要将相应的groupId和artifactId导入即可。

2. 自动配置

我们使用原来的方式搭建ssm框架,会有大量的配置。但是通过springboot却只需要极少的配置项就可以搭建出来。这是为什么呢?一切的奥妙都在一个主程序类中。
主程序是我们程序的入口。其中有一个@SpringBootApplication注解。它是一个组合注解。我们点进去可以看到它主要有如下三个注解:
在这里插入图片描述
@SpringBootConfiguration如同@Configuration。表示这是一个springboot的配置类。
@ComponentScan就是我们spring的注解扫描。默认扫描主程序类所在包及其子包下的spring注解。
@EnableAutoConfiguration是我们的关键注解。如下:
在这里插入图片描述
该注解中有一个@Import注解,导入了AutoConfigurationImportSelector类,及该注解就有了AutoConfigurationImportSelector类所设定的功能。
AutoConfigurationImportSelector类里有一个selectImports方法。就是用于加载配置的。
在这里插入图片描述
selectImports用getAutoConfigurationEntry获取一个自动配置的数组。
在这里插入图片描述
getAutoConfigurationEntry中的getCandidateConfigurations方法如下。
它会在springboot项目启动时去加载META-INF/spring.factories
在这里插入图片描述
在spring-boot-autoconfigure.jar的spring.factories中有表示。回去加载如下的127个配置项。
在这里插入图片描述
我们随便点击一项AopAutoConfiguration
在这里插入图片描述
@Configuration表示当前类是容器的一个配置项。
@ConditionalOnProperty表示有如下属性就加载。
prefix=“spring.aop"是指当前类的属性是在配置文件中用spring.aop作为前缀。如果我们要修改相应的参数,就需要将前缀一并写出。

解释的可能不是很好,这个其实需要自己去过一次代码,就会印象深刻。大家加油!

参考文档

https://www.jianshu.com/p/f457a575e155
http://c.biancheng.net/view/4615.html
https://www.jdon.com/springboot.html
重点推荐:这篇文章讲的非常好,并且有其他链接可以进行详细阅读,值得一看!
https://segmentfault.com/a/1190000016686735

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于简化Spring应用程序开发的框架。它提供了一套开箱即用的配置,可以快速搭建基于Spring的应用程序。SSM框架是指Spring + SpringMVC + MyBatis组合使用的一种开发框架。下面是关于如何使用Spring Boot搭建SSM框架的步骤: 1. 首先,我们需要创建一个Maven项目。可以通过在IDE中选择创建Maven项目的方式来创建一个新的Maven项目。 2. 在pom.xml文件中添加Spring BootSSM的相关依赖。在这里,我们需要引入spring-boot-starter-web,spring-boot-starter-data-jpa,mybatis-spring-boot-starter等依赖。 3. 创建一个Spring Boot的主类,使用@SpringBootApplication注解进行标记。这个类将作为整个应用的入口。 4. 创建一个控制器类,使用@RestController注解进行标记,并编写一些API接口方法。 5. 创建一个实体类,用于映射数据库中的表结构。 6. 创建一个DAO接口,使用@Mapper注解进行标记,并在方法上使用@Select、@Insert、@Update等注解编写SQL语句。 7. 创建一个Service类,使用@Service注解进行标记,并在类中注入DAO接口的实现。 8. 创建一个配置类,用于配置数据库连接等信息。 9. 在配置文件application.properties或application.yml中配置数据库连接信息。 10. 运行Spring Boot应用程序,可以通过访问定义的API接口来进行测试。 通过以上步骤,我们就可以使用Spring Boot搭建SSM框架。Spring Boot提供了自动配置的功能,可以帮助我们快速集成SSM框架所需的组件,并且简化了开发过程。使用Spring Boot搭建SSM框架可以提高开发效率和代码质量,同时还能够实现更好的性能和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值