Sprint Boot基础

1spring boot的作用

spring boot框架抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程。所以采用Spring boot可以非常容易和快速地创建基于Spring 框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了。

说的直白一些使用spring boot之后就不用像以前使用ssm的时候添加那么多配置文件了,spring boot除了支持ssm之外,还支持非常多的第三方技术。spring boot就像是一个百宝箱,你要用那些技术,直接告诉他就行了。在spring boot中写的代码跟以前一样,所以在学习的时候非常容易上手。

springboot的特点
spring boot就相当于一个平台,把我们需要一些东西准备好了,我们在这个平台里面填充业务代码即可,即代码跟以前代码区别不大。

1、能够快速创建基于Spring的应用程序;

2、能够直接使用java main方法启动内嵌的Tomcat服务器运行Spring boot程序,不需要部署war包文件;

3、提供约定的starter POM来简化Maven配置,让Maven的配置变得简单;

4、根据项目的Maven依赖配置,Spring boot自动配置Spring、Spring mvc等;

5、提供了程序的健康检查等功能;

6、基本可以完全不使用XML配置文件,采用注解配置。

2 spring boot的配置

2.1 配置pom.xml
添加父工程坐标

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>

2.2 添加web项目启动器
为了让SpringBoot帮我们完成各种自动配置,我们必须引入SpringBoot提供的自动配置依赖,我们称为启动器。因为我们是web项目,这里我们引入web启动器:

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

2.3 创建启动类
Spring Boot项目通过main函数即可启动,我们需要创建一个启动类:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

SpringBoot到目前为止就已经配置好了,下面可以按ssm的开发方式来编写代码了。

3 java配置

在SpringBoot中我们不需要配置web.xml、springmvc.xml等配置文件了。但是我们如果对于一些必要的Bean配置,在SpringBoot中如何实现?
比如数据库连接池,我们可以采用java配置来代替xml配置:
首先引入Druid连接池依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.6</version>
</dependency>

创建一个jdbc.properties文件,存放jdbc属性:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123

其次,创建配置文件类:

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {

    @Value("${jdbc.url}")
    String url;
    @Value("${jdbc.driverClassName}")
    String driverClassName;
    @Value("${jdbc.username}")
    String username;
    @Value("${jdbc.password}")
    String password;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

我们用到的注解:

  • @Configuration:声明我们JdbcConfig是一个配置类
  • @PropertySource:指定属性文件的路径是:classpath:jdbc.properties
  • 通过@Value为属性注入值
  • 通过@BeandataSource()方法声明为一个注册Bean的方法,Spring会自动调用该方法,将方法的返回值加入Spring容器中。

采用@Value属性注入比较麻烦,我们采用一种简单的属性注入方式:
直接在方法上面加入@ConfigurationProperties注解,springboot会自动调用DruidDataSource的set方法进行配置。注意:采用这种方式,属性配置文件名称必须修改成application.properties,因为springboot读取的默认配置文件名称就是application。

	@Bean
	@ConfigurationProperties(prefix = "jdbc")
	public DataSource dataSource() {
		DruidDataSource dataSource = new DruidDataSource();
		return dataSource;
	}

4、SpringBoot是如何实现自动配置的

使用SpringBoot之后,以前SpringMVC的WEB工程开发,那些繁杂的配置都消失不见了,这都是从我们的main函数来的,所以我们再次来看下启动类:

@SpringBootApplication
public class SpringBootDemo {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootDemo.class, args);
	}
}

我们发现特别的地方有两个:

  • 注解:@SpringBootApplication
  • run方法:SpringApplication.run()

@SpringBootApplication注解的作用:

通过@SpringBootApplication实现了3个功能
1、定义了这是一个配置类
2、开启了自动配置
3、扫描包

SpringBoot为我们提供了默认配置,而默认配置生效的条件一般有两个:

  • 你引入了相关依赖
  • 你自己没有配置

1)启动器

所以,我们如果不想配置,只需要引入依赖即可,而依赖版本我们也不用操心,因为只要引入了SpringBoot提供的stater(启动器),就会自动管理依赖及版本了。

因此,玩SpringBoot的第一件事情,就是找启动器,SpringBoot提供了大量的默认启动器,参考课前资料中提供的《SpringBoot启动器.txt》

2)全局配置

另外,SpringBoot的默认配置,都会读取默认属性,而这些属性可以通过自定义application.properties文件来进行覆盖。这样虽然使用的还是默认配置,但是配置中的值改成了我们自定义的。

因此,玩SpringBoot的第二件事情,就是通过application.properties来覆盖默认属性值,形成自定义配置。

发布了28 篇原创文章 · 获赞 0 · 访问量 242

猜你喜欢

转载自blog.csdn.net/zy450271923/article/details/105313277
今日推荐