文章目录
SpringBoot优点
- 快速构建项目
- 独立运行,从而提高开发效率(调试无需部署tomcat,省去web.xml配置)
- 对主流框架无配置集成(大量常规配置为默认配置)
- 提供运行时应用监控??
- 与云计算天然集成
Spring4.x推荐使用Java配置
- @Configuration 作用于类上,相当于一个xml配置文件
- @Bean 作用于方法上,相当于xml配置中的(ps:方法名为bean的id,故方法名命名按照对象名规范命名)
@Bean
public LogDao logDao(){
return new LogDao();
}
//③定义了logonService的Bean
@Bean
public LogonService logonService(){
LogonService logonService = new LogonService();
//④将②和③处定义的Bean注入到LogonService Bean中
logonService.setLogDao(logDao());
return logonService;
}
相当于
<bean id="logDao" class="com.baobaotao.anno.LogDao"/>
<bean id="logService" class="com.baobaotao.conf.LogonService">
<property name="logDao" ref="logDao"/>
</bean>
SpringBoot快速入门
导入jar包
- 导入SpringBoot的parent(项目的parent必须为SpringBoot)
- 导入SpringBoot的web包
- 导入SpringBoot的插件(可不加)
编写应用
- 应用类上加入@SpringBootApplication,目的是开启自动配置
- 通过main方法调用SpringApplication.run()方法启动
- 或者通过SpringBoot的插件进行启动
SpringBoot核心
SpringBoot默认配置原理
关闭SpringBoot自动配置
@SpringBootApplication(exclude = {RedisAutoConfiguration.class})
自定义Banner
- 打开网站:http://patorjk.com/software/taag/#p=display&h=3&v=3&f=4Max&t=itcast Spring Boot
- 拷贝生成的字符到一个文本文件中,并且将该文件命名为banner.txt
- 将banner.txt拷贝到项目的resources目录中:
- 重新启动程序,查看效果
注:关闭Banner方式如下
SpringApplication app = new SpringApplication(SpringApplication.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
xml配置文件
通过如下注解引入
@ImportResource({"classpath:som-context.xml"})
SpringBoot的web开发
自定义SpringMVC的配置
- 通过全局配置配置mvc的属性
- 通过重写org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter该类的方法进行配置
加入Filter
- 加入实现了Filter接口的类
- 在类上加入@WebFilter设置过滤器的属性
- 在类上加入@Order设置过滤器的顺序
SpringBoot发布到tomcat运行
- pom文件中的package设置为war
- pom文件中的spring-boot-starter-tomcat改jar的scope设置为compile
- 入口类继承SpringBootServletInitializer,然后重写configure,将Spring Boot的入口类设置进去
- 打war包
- 部署到tomcat启动
调用其他服务的Http请求
- 依赖注入RestTemplate的实体
- 使用restTemplate进行方法调用即可
注:RestTemplate底层默认使用的jdk的标准实现,如果我们想让RestTemplate的底层使用okhttp,如下:
- 添加okhttp依赖
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.9.0</version>
</dependency>
- 在RestTemplate的构造方法中引入OkHttp3ClientHttpRequestFactory的工厂类,从而在实际调用请求时,会使用代理进行调用
@Bean
public RestTemplate restTemplate(){
return new RestTemplate(new OkHttp3ClientHttpRequestFactory());
}
SpringBoot配置文件引用
通过Spring引入
- 在application.yml或application.properties配置文件中配置
sean:
item:
url: http://127.0.0.1:8081/item/
- 通过@Value注解进行引入
@Value("${sean.item.url}")
private String seanItemUrl;
通过SpringBoot引入
- 在application.yml或application.properties配置文件中配置
sean:
item:
url: http://127.0.0.1:8081/item/
- 创建对应层级的配置类,并加入@ConfigurationProperties(prefix = “sean”)该注解,prefix为前缀,类中的属性名需要和配置文件中的对应
@Component
@ConfigurationProperties(prefix = "sean")
@Data
public class OrderProperties {
private ItemProperties item;
}
@Data
public class ItemProperties {
private String url;
}
- 引入配置的实体,然后直接调用
@Autowired
private OrderProperties orderProperties;
/**
* 方法的功能描述: 获取订单号的方法
* @param id
* @return
*/
public Item queryItemById(Long id) {
return restTemplate.getForObject(orderProperties.getItem().getUrl() + id, Item.class);
}