小白学Java42:SpringBoot

一. SpringBoot引言

1.1 为什么要用SpringBoot

  • 之前使用SSM 要做很多SSM的模板配置
  • 编写很多XML文件,去做各个插件的配置
  • 维护成本高
  • SSM部署麻烦,依赖第三方容器:Tomcat
  • 开发笨重,很多过程冗余

1.2 SpringBoot

  • SpringBoot就是一个工具库,可以自动的帮我们把一些常用的框架整合到一起,并且隐藏框架的整合细节,实现敏捷开发

1.3 SpringBoot特点

  • SpringBoot项目中不需要模板化的配置

  • 再SpringBoot中整合第三方框架时,只需要导入响应的starter依赖包,就自动整合了

  • SpringBoot默认只有一个.propertise的配置文件,不推荐使用xml,后期会采用.java文件来实现配置

  • SpringBoot工程在部署时,采用的时jar包方式,内部自动依赖了tomcat,提供了多环境的配置

  • 后期要学习的微服务框架要基于SpringBoot

二. SpringBoot的使用

2.1 创建一个SpringBoot工程

  1. 选择构建项目类型>Spring Initializr

在这里插入图片描述

  1. 定义项目名等信息
    在这里插入图片描述

在这里插入图片描述

  1. 选择依赖

在这里插入图片描述

2.2 SpringBoot的目录结构

  1. pop.xml:
    1. 制定了一个父工程,并帮助我们声明了Starter依赖的版本
    2. 项目的元数据:包名,项目名,版本号
    3. 指定properties信息:
    4. 导入依赖:
    5. 插件

  1. .gitignore文件:默认帮我们虎落了一些文件和目录

  1. src目录
-src
	-main
		-java	
			-项目包名
				-启动类.java  #需要将项目的Controller类放在启动类的子包中或同级目录下
		-resources
			-static  #存放静态资源的
			-templates #存放模板页面
			-application.properties  #SpringBoot默认的唯一的配置文件
	-test #测试目录
	

2.3 SpringBoot的三种启动方式

  1. 运行启动类的Main方法
  1. maven命令:

    mvn spring-boot:run

  1. 采用启动jar包的形式,先把项目打成一个jar包然后启动即可

三. SpringBoot常用注解

3.1 @Configuration和@Bean

  • @Configuration
    • 相当与<beans>
  • @Bean
    • 相当于<bean>

@Configuration   //代表当前类是一个配置类
public class UserConfig {

    @Bean(value="user")  //构建Bean 交由Spring管理
    public User user() {
        User user = new User();
        user.setId(1);
        user.setName("张三");
        return user;
    }
}

3.2 @SpringBootApplication

这是一个复合注解,重点关注三个

  • @SpringBootConfiguration
    • 就是一个@Configuration注解
  • @EnableAutoConfiguration
    • 实现自动装配的注解,如果pop中导入了相应的依赖将会自动装配上相应的配置类,
  • @ComponentScan
    • 相当于注解扫描<context:component-scan basePackage=“包名”/>

四.SpringBoot常见配置

4.1 配置文件格式

SpringBoot 默认使用.properties文件,但是更推荐使用yml文件

  1. 会自动换行自动缩进
  2. 避免冗余,更轻

注意:

  1. 严格遵循换行和缩进

  2. 在填写value时,冒号后面一定要跟空格

4.2 多环境配置

在application.yml文件中添加一个配置项

spring:
	profiles:
		active:环境名

在resource目录下,创建多个application-环境名.yml文件即可


在部署工程时,通过

java -jar 项目文件 --spring.profiles.active:环境名

4.3 引入外部配置文件信息

  1. 当仅需要配置文件中的某一项值的时候,可以在要引用的类中使用
@Value("${配置文件的key}")
private String 配置文件的key;

​ 这样在类中就可以直接调用key,来获取配置文件中的value


  1. 需要获取多个同一前缀的值时:可以使用如下方式

    @Data
    @ConfigurationProperties(prefix = "统一前缀")
    @Component
    public class XXXProperties {
        private String xxx;
        
        ...
    }
    
    XXX:
    	xxx:xxx
    	yyy:yyy
    	...
    

    在类中需要引用时,使用如下方式引用

    @Autowired
    private XXXProperties properties;
    

4.4 热加载配置

  1. 导入依赖
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>        
  1. 更改Settings中的配置

在这里插入图片描述

  1. 重新构建一下项目,即可实现热更新

五. SpringBoot整合MyBatis

5.1 Xml整合

  1. 导入依赖

	 <!--        mysql驱动-->
         <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--       druid连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!--        mybatis整合-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
  1. 创建对应实体类和mapper接口
  1. 在application中修改mybatis设置
mybatis:
  #扫描mapper映射文件的位置
  mapper-locations: classpath:mapper/*.xml
  #别名扫描 映射
  type-aliases-package: com.test.test.entity
  #驼峰映射
  configuration:
    map-underscore-to-camel-case: true
  1. 连接池配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///batis?serverTimezone=UTC
    username: root
    password: 1234
    type: com.alibaba.druid.pool.DruidDataSource
  1. 测试
@SptingBootTest
class UserMapperTest{

    @Autowired
    private UserMapper userMapper;

    @Test
    void findAll() {
        List<TUser> all = userMapper.findAll();
        for (TUser user2 : all) {
            System.out.println(user2);
        }
    }
}

5.2 注解整合

  1. 创建mapper.java文件,把Mybatis注解放进去
public interface UserMapper {
    @Select("select * from t_user")
    List<TUser> findAll();

    @Select("select * from t_user where id=#{id}")
    TUser findOne(Integer id);

    @Insert( "insert into t_user values(#{id},#{username},#{password})")
    Integer insert(TUser user);
}

  1. 修改配置文件使其打印SQL语句
logging:
  level:
    com.test.test.mapper: DEBUG
  1. 测试

5.3 整合分页助手

  1. 导入依赖

     	<dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.5</version>
            </dependency>
    

  1. 使用
  @Test
    void findAll() {
        PageHelper.startPage(1,3);
        List<TUser> all = userMapper.findAll();
        PageInfo<TUser> pageInfo =new PageInfo<>(all);
        for (TUser user : pageInfo.getList()) {
            System.out.println(user);
        }
    }

六. Spring整合JSP

  1. 导入依赖
<!-- JSP核心依赖-->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
<!-- JSTL依赖-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

  1. 创建webapp/WEB-INF目录

在这里插入图片描述

  1. 设定view的前缀和后缀
srping:
	mvc:
  	  view:
    	  prefix: /WEB-INF/
    	  suffix: .jsp
  1. 编写controller
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值