目录
SpringBoot框架
SpringBoot开发
SpringBoot工具集
SpringBoot配置文件
SpringBoot Bean组件定义
SpringBoot组件扫描
SpringBoot自动配置
SpringBoot总结
SpringBoot框架
SpringBoot框架是对原有Spring框架做的封装,用于简化Spring程序搭建和开发过程。
SpringBoot完全采用Java配置,取消了XML定义
SpringBoot提供内置的Tomcat,可以打成jar包
SpringBoot提供了自动配置功能,能自动创建DataSource、JdbcTemplate、DispatcherServlet、RedisTemplate、MongoTemplate等
SpringBoot提供了便于引入的工具集,web、jdbc、aop、test等
SpringBoot配置文件application.properties或application.yml
入门案例
创建maven project,在pom.xml导入web包
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.0.5.RELEASE</version> </dependency> </dependencies>
在src\main\resources创建application.properties
server.port=8888
编写HelloController
@RestController public class HelloController { @GetMapping("/hello") public Object say(){ return "Hello SpringBoot"; } @GetMapping("/hello1") public Object say1(){ Map<String, Object> data = new HashMap<String, Object>(); data.put("msg", "SpringBoot"); data.put("name", "XDL"); return data; } }
编写RunBoot启动类
@SpringBootApplication public class RunBoot { public static void main(String[] args) { SpringApplication.run(RunBoot.class, args); } }
SpringBoot开发
SpringBoot工具集
在pom.xml导入jar包时常用以下工具集
spring-boot-starter //ioc core、autoconfig、yaml
spring-boot-starter-parent
spring-boot-starter-web //mvc、restful、tomcat
spring-boot-starter-test //junit、test
spring-boot-starter-jdbc //jdbc、datasource
spring-boot-starter-aop //aop
spring-boot-starter-data-redis //redis、springdata
spring-boot-starter-data-mongodb //mongodb、springdata
spring-boot-starter-data-jpa //spring data
spring-boot-starter-thymeleaf //thymeleaf
SpringBoot配置文件
SpringBoot支持properties和yml两种格式,约定名application。
application.properties
key=value server.port=8888 spring.datasource.username=scott spring.datasource.password=tiger
application.yml
具有层次结构。
server: port: 8888 spring: datasource: username: scott password: tiger
启动类
启动SpringBoot程序的类,带有一个main方法启动。
@SpringBootApplication public class RunBoot { public static void main(String[] args) { SpringApplication.run(RunBoot.class, args); } }
SpringApplication.run(RunBoot.class, args)启动运行机制.
首先判断应用类型,是Web类型、WebService类型、非Web类型
根据不同应用类型加载不同环境参数
加载启动Banner
创建出不同类型的ApplicationContext容器对象
向Spring容器加载组件,例如Bean、Listener
启动Listener组件、任务Runner功能
@SpringBootApplication标记功能
@SpringBootApplication是一个综合标记,由以下功能标记构成
@SpringBootConfiguration-->@Configuration //Bean组件定义
@EnableAutoConfiguration //自动配置功能
@ComponentScan //组件扫描功能
SpringBoot Bean组件定义
@SpringBootConfiguration具有组件配置功能,可以将指定的Bean组件对象放入Spring容器。使用方法如下:
1.引入spring-boot-starter工具集
2.编写配置类,使用@SpringBootConfiguration+@Bean标记
//@SpringBootConfiguration @Configuration public class RunBoot { @Bean//将返回的DeptDao对象放入Spring容器中,默认方法名作为id名 ,等价于<bean id="" class=""> public DeptDao deptDao(){ DeptDao deptDao = new DeptDao(); return deptDao; } }
3.基于配置类创建Spring容器对象
public static void main(String[] args) { ApplicationContext ac = SpringApplication.run(RunBoot.class, args); Object obj1 = ac.getBean("deptDao"); }
4.可以使用@Import将其他配置类导入主启动类RunBoot中
@SpringBootConfiguration//开启了Bean组件定义功能 @Import({DaoConfiguration.class})//导入其他@Configuration配置类 public class RunBoot { //... ... }
提示:如果程序中出现多个同类型的Bean对象,可以使用@Primary指定默认注入对象。
SpringBoot组件扫描
SpringBoot通过@ComponentScan标记开启组件扫描功能。默认扫描当前包及子包组件。也可以指定basePackages属性。
//@ComponentScan(basePackages={"cn.xdl.service"})//<context:component-scan base-package=""> @ComponentScan//默认扫当前包及子包组件 public class RunBoot { }
在组件前面追加@Controller、@Service、@Component、@Repository标记。
通过RunBoot实例化SpringBoot容器,加载组件。
ApplicationContext ac = SpringApplication.run(RunBoot.class, args); Object obj4 = ac.getBean("deptService"); System.out.println(obj4);
SpringBoot自动配置
SpringBoot提供了大量的配置组件,这些配置组件已创建出常用对象,例如DataSource、JdbcTemplate等。
在启动类前,追加@EnableAutoConfiguration标记,可以开启自动配置功能。
1.在启动类前追加@EnableAutoConfiguration开启自动配置(加载spring-boot-autoconfigure-2.0.5.RELEASE.jar下META-INF/spring.factories文件定义的组件)
2.在pom.xml添加对应工具包(spring-boot-starter-jdbc、ojdbc6)
3.在application.properties定义参数
spring.datasource.username=SCOTT
spring.datasource.password=123456
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
#spring.datasource.driverClassName=
4.创建SpringBoot容器,获取使用dataSource、jdbcTemplate对象
ApplicationContext ac = SpringApplication.run(RunBoot.class, args); DataSource ds = ac.getBean("dataSource",DataSource.class); System.out.println(ds.getConnection()); JdbcTemplate template = ac.getBean("jdbcTemplate",JdbcTemplate.class); System.out.println(template);
SpringBoot总结
更多推荐
Spring框架(十四)SpringBoot框架+SpringBoot开发+SpringBoot总结
发布评论