初始SpringBoot

概念:
初始SpringBoot
特点:
初始SpringBoot
搭建SpringBoot项目:
1.
初始SpringBoot

初始SpringBoot
3.
初始SpringBoot
4.
初始SpringBoot
5.点击next然后设置项目的存储位置然后项目创建完成。

初始SpringBoot
编写代码测试
在src/main/java/com.yay.springbootdemo1下创建子包controller,在子包下面创建一个名为TestController的控制器类,编写代码:

@Controller
@RequestMapping("/test")
public class TestController {
    @ResponseBody
    @RequestMapping("/hello")
    public String sayHello(){
        return "sayHello Spring boot";
    }
}

打开Springbootdemo1Application类:点击main方法绿色箭头就可以运行了

初始SpringBoot
然后注入url地址进行访问
初始SpringBoot

SpringBoot三个核心文件

1.pom.xml
初始SpringBoot
1.parent中的依赖是父依赖,有以下作用:

  • 限定java版本:springBoot2.1.5版本所依赖的jdk版本为1.8及以上。
  • 限定源码的文件编码方式:默认为UTF-8.
  • 管理依赖:在父依赖中设置了一些公共依赖的版本号,这样开发人员在引入依赖时可以不同指定版本号,这样就不会出现版本号不符的问题。
  • 打包支持:设置了一些使用maven对项目进行打包的规则。
  • 动态识别资源:可以识别一些特定名称的资源文件,比如application.properties文件。
  • 识别插件配置:比如exec plugin,Git commit ID,shade等

2.spring-boot-starter-web依赖:
给springBoot项目继承了使用springmvc所需要的组件,仅仅有组件还是不够的,还缺少一些springmvc的配置,这些配置信息在springboot项目中都已经配置好,并通过自动配置加载到项目中。

3.spring-boot-start-test依赖
此依赖中引入的时项目测试组件,不是必需的。

2.启动类
初始SpringBoot
3.application.properties属性文件。
初始SpringBoot

springboot项目启动方式

使用springboot内置容器启动
初始SpringBoot

初始SpringBoot

多模块项目

在idea中使用Maven构建多模块项目
使用三层架构的方式搭建项目框架,项目结构清晰,代码耦合度相对于不使用三层架构的项目降低了。但是在企业级开发中,代码量大, 项目庞大,即使使用三层架构的方式,搭建出来的项目也时比较复杂的。存在以下几个问题:

  • 结构不够清晰,开发人员不能从庞大的项目中快速定位自己负责的模块。
  • 项目庞大导致启动费时。
  • 部署时,无法分模块扩展项目,造成资源的浪费。

为了解决这些问题,maven提出了一套多模块项目的方案。

初始SpringBoot

初始SpringBoot
示例:
使用Spring Initializr创建父项目Springbootdemo3
在springbootdemo3下创建子模块UserService项目和UserController项目:
初始SpringBoot
打开两个子项目pom文件可以发现都有:

  <parent>
        <artifactId>springbootdemo3</artifactId>
        <groupId>com.yay</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

继承父项目

打开父项目可以发现:

  <!--聚合-->
    <modules>
        <module>userservice</module>
        <module>userController</module>
    </modules>
    <!--继承springboot父项目,提供springboot依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <!--本项目gav坐标-->
    <groupId>com.yay</groupId>
    <artifactId>springbootdemo3</artifactId>
    <version>0.0.1-SNAPSHOT</version>

这便是聚合:

在UserService子项目里有User类 和UserService类
初始SpringBoot
如果在UserController子项目中想使用的话 在pom文件里添加如下依赖:便是UserService项目的gav坐标

  <dependencies>
        <dependency>
            <groupId>com.yay</groupId>
            <artifactId>userservice</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

这样在UserController项目中就可以使用UserService项目中的类

@Controller
@RequestMapping("/user")
public class UserController {
    @Resource(name = "userService")
    private UserService userService;
    @RequestMapping("/list")
    @ResponseBody
    public List<User> list(){
        List<User> list = userService.listUser();
        return list;
    }
}

上一篇:SpringIOC和AOP的生活案例


下一篇:Spring新创建的事物不生效。