SpringBoot简介及部署

SpringBoot作用

搭建程序的脚手架,可以快速的帮助我们搭建一个spring项目,尽可能的减少XML配置,做到开箱即用,让我们关注业务而非配置

springBoot的优点:

1.创建独立运行的Spring引用程序

2.可嵌入tomcat,不用设置war包

3.简化Maven配置

4.自动配置Spring

5.不要求配置XML

6.容易和第三方框架集成起来

7.有日志,健康检查等

缺点

版本更新快,对程序员不太友好

约定大于配置

开发流程

1.创建项目

maven项目

<!--添加继承关系-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.5</version>
    </parent>
2.导入场景

场景启动器

 <dependencies>
        <!--添加启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--添加web项目相关的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
3.主程序
@SpringBootApplication
public class MainApplication {
    //运行的主程序
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);
    }
5.测试
6.打包
    <build>
    <plugins>
        <!-- Spring Boot 打包插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    </build>

将项目达成可执行的jar包

执行jar包运行项目的 方法:java -jar 包名

特性小结

1.简化整合

管理各种依赖的版本

​ spring-boot-starter-parent

导入相关的场景,拥有相关的功能,场景启动器

​ 官方的场景: 命名为:spring-boot-starters-*

场景一导入,万物皆就绪

2.简化开发

无需要编写任何配置,直接开发业务

3.简化配置

使用application.properties:

​ 集中式配置,只需要修改这个文件就行

​ 配置有默认值

4.简化部署

打包为可执行的ar包

Linux服务器上有Java环境

问题
  • 当前项目继承的 spring-boot-starter-parent 项目有什么用?

    这是一个父工程,用于管理各种依赖的版本,不用担心版本不一致的情况

  • 导入的依赖 spring-boot-starter-* 有什么用?

    这里是引用的启动器,免去了框架的其他配置,需要什么板块的就添加什么版块的

  • 占用 8080 端口的 Tomcat9 服务器哪来的?

    该服务器识启动器里面自带的,默认的端口号就是8080

  • 之前的 Web 应用打包是 war,为什么现在的打包方式是 jar?

    打成war包需要添加更多的依赖,使用jar包可以脱离idea运行

  • @SpringBootApplication 注解有什么用?

    扫描主程序的包极其子包的问价

  • main 方法中执行的代码 SpringApplication.run(…) 有什么用?

    这是主程序的入口,启动web程序

JavaConfig常用的注解

**1.@Configuration:**告诉spring这是一个配置类,和application,xml作用一样

**2.@ Bean:**第一次调用时就创建这个对象,并将这个对象放在容器中,下一次就直接从容器中拿,将对象给spring管理

​ 使用里面的方法名作为这个Bean’的名称,这个是单例,里面可以写初始化方法

@Configuration  //表示当前是一个配置类,相当于applicationContext.xml
public class MyConfig {
	//配置连接池的时候需要这两个属性
    @Bean(initMethod = "init",destroyMethod = "destroy")   //将该方法的返回值交给Spring容器管理
    public SomeBean someBean(){
        return new SomeBean();
    }
}

**@ComponentScan:**用于扫描带有"component"注解的包创建bean,通过扫描这些包避免了使用@Bean创建很多bean,更加便捷,写在配置类中 component贴在需要创建对象的类上

@Component
@Setter
@Getter
public class SomeBean {
   
}
@Configuration // 表示该类是 Spring 的配置类
@ComponentScan // 开启组件扫描器,默认扫描当前类所在的包,及其子包
public class JavaConfig { }

**3.@Scope(“prototype/singto”)😗*给对象设置作用域,单例还是多例

**4.@SpringBootApplication:**组件扫描只扫描主程序的包及其子包下的文件

**5.@PostConstruct:**初始化注解

**6.@PreDestroy:**销毁的注解, 只有销毁单例能手动销毁,多例会自动销毁

7.@Import(BConfig.class) :导入其他的配置类,配置文件之间的关联

@Configuration
@Import(BConfig.class)  //导入1其他的配置类,配置文件之间的关联
public class AConfig {
    @Bean
    public SomeBean someBean(OtherBean otherBean){
        SomeBean someBean = new SomeBean();
        someBean.setOtherBean(otherBean);
        return someBean;
    }

8.ContextConfiguration(classes={配置类1.class,配置类2.class}):使用配置类的形式启动测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MyConfig.class)
JavaConfig 方式配置 DI

​ 在进行DI注入前,必须保证这个对象已经交给spring进行管理,spring框架会从容器中找这个对象,

​ 获取的都是同一个对象,默认使用的是单例

方式一

在方法的形参注入

 @Bean  //Spring框架会从容器中找otherBean
    public SomeBean someBean(OtherBean otherBean){
        SomeBean someBean = new SomeBean();
        someBean.setOtherBean(otherBean);
        return someBean;
    }

方式二

使用方法注入

 @Bean  //在容器中拿这个bean,拿到的是同一个对象
    public SomeBean someBean2(){
        SomeBean someBean = new SomeBean();
        someBean.setOtherBean(otherBean());
        return someBean;
    }
配置文件的参数配置

**作用,**可以很方便的修改配置

​ 例如:端口号,session超时时间等

使用的配置文件格式有:application.xml, application.yaml

yml文件配置(建议)

​ 该配置文件简化了xml,结构层次更加明显,一定要遵循配置的格式,分号后面使用空格进行隔离

配置文件的优先级

​ 高级会覆盖低级,一般将配置文件放在外面,方便测试人员进行更改调试

  • 项目/config/application.properties
  • 项目/application.properties
  • classpath:config/application.properties
  • classpath:application.properties
参数属性绑定
//绑定方式一:在配置类上绑定属性
public class JavaConfig { 
    // @Value:从 Spring 环境对象中根据 key 读取 value
    @Value("${jdbc.driverClassName}")
    private String driverClassName;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    
    @Bean
    public MyDataSource dataSource() {
        MyDataSource dataSource = new MyDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}
//绑定方式二:在自定义的类上进行绑定
public class MyDataSource {
    @Value("${jdbc.driverClassName}")
    private String driverClassName;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
}
SpringBoot 自动装配

@SpringBootApplication注解做了些什么

@EnableAutoConfiguration:开启自动装配的注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值