什么是springboot,你需要从一个简单的实例说起

1. 你了解springboot吗?

 一般去面试,面试官会问你,你用过哪些框架,了解springboot不?

 那你可以加个词,以我的理解:

      a、springboot是spring项目中的一个子项目,源于spring而高于spring。

        spring虽然可以说是轻量级的,但它的配置确实重量级的,所有这些配置都代表了开发时的损耗。

        Spring在项目创建时,需要考虑依赖包版本。一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。

      b、springboot有哪些好呢?

        可创建独立的spring应用程序

        直接内嵌tomcat、jetty和undertow(不需要打包成war包部署)

        提供了固定化的“starter”配置,以简化构建配置,自动配置spring和第三方库

        提供产品级的功能,如:安全指标、运行状况监测和外部化配置等

  总结:

 1> 基于 SpringMVC 无配置文件(纯 Java )+ 完全注解化 + 内置 tomcat-embed-core 实现 SpringBoot 框架, Main 函数启动。

 2> SpringBoot核心快速整合第三方框架原理 :Maven 继承依赖关系。

2. 一个简单的入门级例子

环境:

(1)JDK 环境必须是 1.8 及以上

(2)要使用到 Maven 管理工具 3.2.5 及以上版本

(3)开发工具IDEA,也可以 MyEclipse

搭建 Spring Boot第一个实例

第一步:新建一个Module,然后选Spring
Initializr,Module SDK选择自己安装的jdk路径。
在这里插入图片描述

第二步:点击next后到达界面如下,编写包名和工程名,我们这里用默认的

在这里插入图片描述

第三步:点击next后到达界面如下,我们把web、mysql、mybaties勾选上,已做后续使用。

在这里插入图片描述

在这里插入图片描述

第四步:点击next后到达界面如下,这里是工程名和工程存放地址,点击finish方可。

在这里插入图片描述

第五步:此步骤就是代码部分,我们看下(注释部分请详细看)

代码结构:

在这里插入图片描述

DemoApplication.javaTestController.java



package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

//这里exclude的作用为禁用数据库自动配置(SpringBoot默认会自动配置数据库)
//如果不禁用就需要在application.properties中配置数据库的连接,不然会报错
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
//springboot启动类,默认包含main函数。
public class DemoApplication
{
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}


***************************************************************************************
package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 测试控制器
 *
 * @author: @guoyunpeng
 * @create: 2020-04-08
 */
@RestController
@RequestMapping("/springboot")//全局url
public class TestController
{

    @RequestMapping("/test")//分支url
    public String hello() {
        return "gyp love ly.";
    }

    @RequestMapping("/song")//分支url
    public String song() {
        return "相信天总会黑。";
    }

}

 

 
释各个注解的含义:

controller层:

 

       1、@Controller

              @Controller 用来响应页面,表示当前的类为控制器。

 

       2、@RestController

              @RestController 是@ResponseBody和@Controller的结合

              表明当前类是控制器且返回的是一组数据,不是页面

 

       3、@Autowired

              这个注解的作用是将其他的类,接口引入,类似于之前的类的初始化等,用这个注解,类中或接口的方法就可以直接调用了。

 

       4、@RequestMapping

              当前台界面调用Controller处理数据时候告诉控制器怎么操作

              作用:URL映射。

 

       5、@GetMapping

              @RequestMapping(method = RequestMethod.GET)的简写

              作用:对应查询,表明是一个查询URL映射

       6、@PostMapping
       @RequestMapping(method =RequestMethod.POST)的简写 作用:对应增加,表明是一个增加URL映射

 

       7、@PutMapping

              @RequestMapping(method = RequestMethod.PUT)的简写

              作用:对应更新,表明是一个更新URL映射

 

       8、@DeleteMapping

              @RequestMapping(method = RequestMethod.DELETE)的简写

service层:

       1.@service

              用于标注业务层组件

              

dao层:

       1.@Repository

              是用来注解接口,@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常


配置:

       @Configuration,@Bean

              可理解为用spring的时候xml里面的<beans>标签,用@Configuration注解该类,等价 与XML中配置beans

              @Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名

 
启动类:

@SpringBootApplication:
     启动注解,@SpringBootApplication是一个复合注解,
包括@ComponentScan和@SpringBootConfiguration,@EnableAutoConfiguration

 

 
@SpringBootConfiguration
     继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。

 


@EnableAutoConfiguration
    作用启动自动的配置,@EnableAutoConfiguration注解的意思就是Springboot根据你添加的jar包来配置你项目的默认配置,比如根据spring-boot-starter-web,来判断你的项目是否需要添加了webmvc和tomcat,就会自动的帮你配置web项目中所需要的默认配置。


 

@ComponentScan:
    扫描当前包及其子包下



@ServletComponentScan:
    在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。


@MapperScan("com.Vm.server")
    @MapperScan注解只会扫描包中的接口,不会扫描类,扫描指定包中的接口

 

@EnableScheduling:
spring自带的定时服务

    public class ScheduledTasks
     {

        @Scheduled(fixedRate = 1000 * 30) //每30秒执行一次

        public void reportCurrentTime(){

        System.out.println ("Scheduling Tasks Examples: The time is now " + dateFormat().format(new Date ()));

       }
     }

 



发布了3 篇原创文章 · 获赞 1 · 访问量 65

猜你喜欢

转载自blog.csdn.net/weixin_43916023/article/details/105386730