Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Springboot是Spring中的一个成员,可以简化Spring,SpringMVC的核心是IOC容器
使用Springboot开发效率高。
Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java–jar xx.jar” 即可运行。
可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。
Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。
Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。
尽可能自动配置Spring容器
Spring Boot 可以对正在运行的项目提供监控。
遵循习惯优于配置的原则。使用springboot我们只需要很少的配置,大多数使用默认配置即可
内嵌servlet容器,降低了对环境的要求,可用命令直接执行项目
项目快速搭建。springboot尽可能自动配置spring以及第三方库,帮助开发者快速搭建spring框架,可无需配置的自动整合第三方框架
提供各种starter简化Maven配置。springboot提供了一系列的starter用来简化maven依赖。如:常用的spring-boot-starter-web、spring-boot-starter-tomcat等
独立运行spring项目。springboot可以以jar包的形式进行独立运行,使用java -jar xx.jar 就可以成功运行项目,无需部署war文件
可以完全不使用xml配置,只需要自动配置和Java config
应用监控(SpringBootActuator)
Spring使用XML作为容器配置文件,在3.0后加入了JavaConfig,使用java类做配置文件使用。
JavaConfig:是Spring提供使用java类配置容器(代替XML配置。配置Spring IOC容器的纯Java方法。
JavaConfig类可以创建java对象,把java对象放入spring容器中(注入)。
可以使用面向对象方式,一个配置类可以继承配置类,可以重写方法。
避免了繁琐的XML配置
注解:@Configuration 、 @Bean
@Configuration:表示这个类作为配置文件使用
@Bean:声明对象,把对象注入到IOC容器中。
pojo类
public class Student {
private String name;
private int age;
private String sex;
//get+set+toString
}
分别使用XML配置与JavaConfig配置方式将Student对象注入IOC容器
XML配置文件配置
springConfig.xml
测试类
@Test
public void test01(){
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("springConfig.xml");
Student student = applicationContext.getBean("student", Student.class);
System.out.println(student.toString());
}
JavaConfig配置@Configuration
/**
* @Configuration注解:表示该类作为配置文件使用。用来配置IOC容器。
* 使用@Configuration注解后SpringConfig类,代替springConfig.xml
*/
@Configuration
public class SpringConfig {
/**
* 创建方法其返回值为对象,加入@Bean注解后,对象就注入到IOC容器中
*/
//未使用@Bean注解来指定Bean的名字则默认为方法名
@Bean
public Student createStudent(){
Student st1 =new Student();
st1.setName("李四");
st1.setAge(20);
st1.setSex("男");
return st1;
}
}
测试类
@Test
public void test02(){
ApplicationContext aC =new AnnotationConfigApplicationContext(SpringConfig.class);
Student createStudent = aC.getBean("createStudent", Student.class);
System.out.println(createStudent.toString());
}
使用@bean注解指定名称
@Bean(name ="Student001")
@ImportResource作用:导入其他xml配置文件,等同于
等同于在xml中使用import
@ImportResource的使用
@ImportResource(value ="classpath:applicationContext.xml")
@PropertyResource注解是读取properties属性配置文件,类似于在xml配置文件中的
@PropertyResource注解的使用
在resources目录下创建properties文件,使用key=value格式提供数据
创建类
@Component("jdbc")
public class Jdbc {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.user}")
private String user;
@Value("${jdbc.password}")
private String password;
//get + set + toString
}
SpringConfig配置
@ComponentScan({"com.qgs.pojo"})
@PropertySource(value = "classpath:jdbc.properties")
测试类
@Test
public void test02(){
ApplicationContext aC =new AnnotationConfigApplicationContext(SpringConfig.class);
Jdbc jdbc = aC.getBean("jdbc", Jdbc.class);
System.out.println(jdbc.toString());
}
使用Spring提供的初始化器,向导创建springboot项目
DIEA使用国外地址:
https://start.spring.io
DIEA使用国内地址
https://start.springboot.io
浏览器构建项目
IDEA导入包
使用Maven构造SpringBoot项目
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.7.10
org.example
springboot004
1.0-SNAPSHOT
8
8
UTF-8
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.3.0
org.springframework.boot
spring-boot-devtools
runtime
true
com.mysql
mysql-connector-j
runtime
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
如有错误请指正,谢谢