栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot基础项目构建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot基础项目构建

文章目录
      • 配置springboot
      • 修改内嵌服务器内容
      • 注解
      • 工厂模式
      • 属性注入
      • 集成JSP模板
      • MyBatis的整合
      • 本地测试
      • 热部署
      • 日志处理

配置springboot

在springboot中为了方便版本的管理,不引入任何依赖,统一继承父项目的版本

写在pom.xml

    
        spring-boot-starter-parent
        org.springframework.boot
        2.5.5
    

继承父项目之后才开始引入我们需要的依赖,引入的依赖都是springboot封装完成后的依赖

在dependencies标签中放入依赖

例如如下的web依赖


            org.springframework.boot
            spring-boot-starter-web
        

需要在main- resource中新建一个配置文件,且文件名必须是

application.yml

如果不出错,文件图标会变成一个小树叶

在java中创建一个入口类 必须有一个main函数 且必须加一个注解 @SpringBootApplication

  • 修饰范围:作用在类上,只能用在入口类上,只能出现一次
  • 作用:标志这个类是一个springboot的入口类,用来启动整个springboot项目的总入口

在main函数中,需要启动springboot应用,且用两个参数

  • 类对象,类对象不同于类的对象,类对象是xxx.class,类的对象通常是new出来的对象
  • main函数的参数,通常为args
public class application {
    public static void main(String[] args) {
        SpringApplication.run(application.class, args);
    }
}

至此SpringBoot才算搭建完成

总结:

  • pom文件引入依赖
  • resource生成application.yml
  • 创建入口类且加入@SpringBootApplication注解
  • 在main中启动应用
修改内嵌服务器内容

application.yml 中进行修改

# 修改端口号
server:
  port: 8000
  servlet:
    context-path: /spring # 修改项目名,且必须斜杠开头,默认是没有的
注解

@SpringBootApplication:注解

  • 组合注解:就是由多个注解组合而成的一个注解
  • 元注解:JDK自带的注解且用来修饰注解的注解
    • @Target:指定注解作用范围
    • @Retention:指定注解什么时候有效
  • @SpringBootApplication主要由三个注解组成
    • @SpringBootConfiguration:这个注解就是用来自动配置Spring SpringMVC(初始化,servlet …)相关环境;
    • @EnableAutoConfiguration:开启自动配置 自动配置Spring相关环境 自动与项目中引入第三方技术自动配置其环境;
    • @ComponentScan:组件扫描,根据注解发挥注解作用,默认扫描当前包及其子包;
工厂模式

SpringBoot = Spring(工厂) + SpringMVC(控制器)

相当等于一个脚手架,如VUE的vue-cil

Spring工厂创建对象:

  • 基于配置文件创建对象:在spring.xml文件中写入
  • 基于注解方式创建对象
    • @Component:在工厂中创建对象,通用的对象注解
      • @Controller:创建控制器注解;
      • @Service:创建业务层注解;
      • @Repository:创建dao层注解;

SpringBoot工厂创建对象:

  • 使用原始spring框架中注解创造对象;

  • 使用配置方式创建对象:

    • @Configuration
      • 修饰范围:作用在类上;
      • 作用:代表这个类是一个SpringBoot中配置类;
    • @Bean
      • 作用:创建对象;相当于spring.xml书写bean;
  • @Configuration
    public class BeansConfig{
    	@Bean
    	public User user(){
    		return new User();
    	}
    }
    
属性注入

Spring的属性注入:

  • 引入类型(对象)属性注入:

    • @Autowired:spring提供的 默认根据类型注入
    • @Resource:javaEE 规范 默认根据名称注入
  • 八种基本类型+日期类型+数组+集合类型属性注入:

	

    

SpringBoot的属性注入:

  • @Value:通过yml文件可将属性注入
@Value("${name}")
private String name;
name: UrbaneH # 字符串
age: 18 # int
price: 12.12 # float & double
arrs: 12,12,34,456 # 数组,需要使用,进行隔开
lusts: zhangsan, lisi, wangwu # 列表,需要使用,进行隔开
tf: true # 布尔值
times: 2012/12/12 12:12:12 # 默认使用 yyyy/mm/dd HH:MM:ss的格式
maps: "{'name': 'UrbaneH', 'age': '18'}" # map类型,在双引号内用单引号包裹键值对 注入时必须使用#{${属性}} 使用json格式赋值
  • @ConfigurationProperties:对象赋值
orders:
  id: 20
  name: UrbaneH
  price: 99.99
    public void setName(String name) {
        this.name = name;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setPrice(float price) {
        this.price = price;
    }

注意:使用次方法,一定要构建SET函数,否则将无法获取到相应的数据,@ConfigurationProperties需要设置Value属性,属性的值与对象名称相同;


            org.springframework.boot
            spring-boot-configuration-processor

            true
        

用于配置注解处理器以生成元数据,作用不是很大,主要是看着舒服一点然后会有提示,没有报错;

集成JSP模板
        
            jstl
            jstl
            1.2
        


        
            org.apache.tomcat.embed
            tomcat-embed-jasper
        

一般jsp文件时放在main文件夹中的webapp文件夹当中

且需要加一个头部,在jsp文件当中 <%@page pageEncoding="UTF-8" contentType="text/html; UFT-8" isELIgnored="false" %>

当文件都准备完成时,需要在application.yml文件当中配置jsp视图前缀和后缀

spring:
  mvc:
    view:
      prefix: /
      suffix: .jsp

prefix : 是指访问页面的前缀,指定页面存放的文件夹

suffix : 是指文件的后缀名,常见的后缀名有html,jsp,php,txt,mp3

server:
  servlet:
    jsp:
      init-parameters:
        development: true

打开jsp的开发模式,即修改jsp模板后,不需要重启SpringBoot服务,刷新即可

MyBatis的整合
  • 引入依赖:SpringBoot-web,mysql相关,mysql驱动,druid数据源,mybatis相关的(mybatis-spring-boot-stater)包含了(mybatis和mybatis-spring)
				
            com.alibaba
            druid
            1.2.7
        

        
            mysql
            mysql-connector-java
            8.0.26
        

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.2.0
        
  • 书写配置:

    • 开启注解扫描:省略

    • 创建数据源:

      • 指定数据源类型
      • 指定数据库的驱动
      • 指定url
      • 指定username
      • 指定password
        # 整合mybatis的相关配置
        datasource:
          type: com.alibaba.druid.pool.DruidDataSource
          # mysql 8.x.x 的驱动
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/bootssm?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true
          username: root
          password: 88888888
      
    • 创建sqlsessionFactory

      • 指定mapper配置文件的位置
      • 指定实体所在的包位置(起别名)
      mybatis:
        # 指定mapper的配置文件位置 创建文件时一定要使用/而不是.
        mapper-locations: classpath:com/urbaneh/mapper/*.xml
        #  指定实体类的包名 默认别名: 类名 类名首字母小写
        type-aliases-package: com.example.demo.entity
      
    • 创建DAO

      • 指定DAO接口所在的包:在入口类使用注解==@MapperScan(“com.example.demo.dao”)==用来扫描dao接口所在的包,同时将所有dao接口在工厂中创建对象
    • 创建事务管理器 开启注解式事务生效 省略

  • 测试:

    • 建表
    • 开发实体类:在entity文件夹中创建表的实体类,将表内的列声明为变量,生成GET和SET方法以及带参和不带参的构造方法;
    • 开发DAO接口
    public interface UserDao{
        // 插叙所有
        List findAll();
    }
    
    • 开发Mapper配置文件
    
    
    
    
        
            SELECT * FROM user;
        
    
    
    • 开发Service接口
    public interface UserService {
    
        List findAll();
    }
    
    • 开发ServiceImpl实现类
    @Service
    @Transactional
    public class UserServiceImpl implements UserService {
        private UserDao userDao;
    
        @Autowired
        public UserServiceImpl(UserDao userDao) {
            this.userDao = userDao;
        }
    
        @Override
        public List findAll() {
            return userDao.findAll();
        }
    }
    
    • 测试ServiceImpl
本地测试
  • 引入结合junit与SpringBoot依赖,如果是官网生成的代码文件中会自带;

            org.springframework.boot
            spring-boot-starter-test

            test
        
  • 启动SpringBoot应用,才能启动Spring工厂,注入测试对象,@SpringBootTest
    • 修饰范围:用在类上;
    • 作用:用来启动本地Spring环境
热部署

SpringBoot提供了全局项目热部署,在开发过程中修改了部分代码以及相关配置文件后,不需要每次重启SpringBoot服务来使其生效,开启热部署后,只需修改后等待几秒即可立即生效;

如果想使用热部署(devtools)工具就必须每一个项目都引入热部署的依赖

				
            org.springframework.boot
            spring-boot-devtools
            
            true
        

如果使用IDEA需要开启自动构建项目!

开启高级设置中 -> 编译器 -> 即使当前正在运行所开发的应用程序也允许启动自动生成!

日志处理

SpringBoot内集成了logback日志;

ALL TRACE DEBUG INFO WARN ERROR FATAL OFF

  • OFF:关闭,最高级别 不打印日志;
  • FATAL:致命,指明非常严重的可能会导致应用终止执行的错误事件;
  • ERROR: 错误,指明错误事件 但应用程序可能还会继续运行;
  • WARN: 警告,指明可能潜在的危险状况;
  • INFO: 信息,指明描述信息,从粗粒度上描述了应用运行过程;
  • DEBUG: 调试,指明细致的事件信息,对调试应用最用;
  • TRACE: 跟踪,指明程序运行轨迹,比DEBUG级别的粒度更细;
  • ALL: 所有,所有日志级别,包括定制级别;

级别越高输出的日志信息越少;

日志一般分为两类

  • 一类是rootlogger(根全局日志):用来监听项目中所有的运行日志 包括引入依赖jar中的日志;
  • 一类是logger(指定包级别日志):用来监听项目中指定包中的日志信息;

在SpringBoot中默认的日志级别是INFO

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322307.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号