SpringBoot框架的应用

spring boot

在 spring 基础上进行了简化,提供一些配置的默认值

1. 创建spring boot项目

  • 使用向导(web 页面), 要联网
  • 使用 maven 项目, 需要配置 pom.xml

pom.xml 参考:

<!-- 1. parent 中是一些公共的pom 配置, 我们的项目从中继承即可 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
</parent>
<!-- 2. 设置 jdk 版本-->
<properties>
    <java.version>1.8</java.version>
</properties>

<!-- 3. 添加 spring boot 相关依赖 -->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- 4. 添加打包插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

springboot 推荐的打包方式是 jar

2. 编写spring boot代码及运行

需要在入口类上加一个注解 @SpringBootApplication

然后在 main方法中使用, 来启动springboot 应用程序

SpringApplication.run(启动类.class, args);
  • 入口类必须有一个 package,不能是空 package
  • 目标结构
com
    westos
        MyApplication (入口类)
        controller
            |- 控制器 正确位置
        service
            |- 服务器 正确位置   
    controller
        |-控制器 错误位置!!!

fat jar 打包之后,包含了所有第三方的jar,要运行这个jar,使用如下命令

java -jar jar包名字

3. spring boot 整合mybatis

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>

mapper 接口上要添加一个 @Mapper 注解
在 application.properties 配置文件中加入连接数据库的信息

spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

4. banner 可以自定义

5. lombok

可以加在模型类上,帮助生成 get,set,toString,hashCode,equals等方法

  1. 在项目中添加 lombok 依赖
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
  1. 在编辑器上安装 lombok
  • idea 插件
    如果能联网,直接进入settings->plugins-> marketplace 搜索 lombok
    不能联网,找到插件压缩包settings->plugins-> install plugin from disk
  • eclipse 插件
@Data // 生成 get, set, toString, hashCode, equals
@AllArgsConstructor  // 根据所有的属性, 生成一个带参的构造方法
@NoArgsConstructor // 生成一个无参构造
@Builder // 生成一个建造器对象
@Getter // 只生成 get方法
@Setter // 只生成 set方法
public class Student {
    private int sid;
    private String sname;
    private Date birthday;
    private String sex;

    public static void main(String[] args) {
        Student stu = Student.builder().sid(1).sex("男").sname("张三").birthday(new Date()).build();
    }

}

@Slf4j 注解 作用为当前的类生成一个日志对象

@Slf4j // 相当于生成了private static final Logger log = LoggerFactory.getLogger(StudentService.class);
public class StudentService {
    // 自己的方法中,就可以使用 log 的日志对象来记录日志了
}

6. spring devtools

<!-- 开发工具, 让修改代码快速生效, 提高服务器启动速度 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

在idea 修改代码之后,执行 build-> build module, 会触发服务的重新启动,让修改生效

idea

  1. ctrl+shift+a
  2. 搜索 registry…
  3. 搜索 compiler.automake.allow.when.app.running 打钩

7. spring boot 监控工具

actuator

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

默认已经开启了两个端点 /info, /health
如果开发中希望使用更多的端点 applicaiton.properties

management.endpoints.web.exposure.include=* // * 代表暴露所有端点
management.endpoints.web.exposure.include=info,health,beans
  • 其中 /beans 是用来用来检测spring容器中所有对象
  • 其中 /env 是显示当前所有系统环境变量、java变量的一个端点、springboot 自己的配置信息
    生产环境下不要暴露这些端点

8. 新的管理 bean 的方式

  • xml <bean class="类">
  • 给类上添加注解 @Component, @Service, @Controller, @Repository, @Mapper, @RestController,配合扫描找到他们管理
  • @Bean 配合工厂方法,生成对象交给spring容器管理
// <bean id="userService" class="UserService">
// 工厂方法, 生产一个希望由 spring 管理的对象
// 方法名相当于 bean 的id,方法返回的对会放入容器,其他地方可以使用@Autowired 对它进行依赖注入
//  此方法只会被调用一次,因为默认情况要保证userService对象是单例的
@Bean
public UserService userService() { 
    return new UserService();
}

如果希望把这些bean的定义集中管理,新建一个 配置类

@Configuration
public class 配置类 {
    @Bean
    public 工厂方法1() {}

    @Bean
    public 工厂方法2() {}

}

9. 自动创建数据库结构,导入数据

resources
schema.sql – 存放删表建表语句 ddl
data.sql – 存放 insert 数据的 sql
需要在 application.properties

spring.datasource.initialization-mode=always  每次启动 spring boot应用程序时,总会执行 schema.sql 和 data.sql

10. spring boot 集成 jdbc

JdbcTemplate jdbc模板类 (模板模式)

ctrl + alt + B 列出某个接口的所有实现类

  1. 加入 start-jdbc 依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
  1. 为 dao 类注入jdbcTemplate属性
@Repository
public class Dao{
    @Autowired
    private JdbcTemplate jdbc;

    // jdbc.update(sql, sql中?值)  执行增、删、改
    // jdbc.query(sql, rowMapper, sql中?值)  执行查询结果为多行时
    // jdbc.queryForObject(sql, rowMapper, sql中?值) 执行查询结果为一行时
}

11. 事务控制

jdbc, mybatis
要启用事务管理,在入口类上加一个 @EnableTransactionManagement
需要事务的方法上加上 @Transactional

12. 面向切面编程

要启用面向切面编程,在入口类上加一个 @EnableAspectJAutoProxy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值