Spring Boot 学习笔记
2024-07-15 11:37:20 151 举报
AI智能生成
Spring Boot 学习笔记
作者其他创作
大纲/内容
为什么使用 Spring Boot
解决:繁多的配置
解决:低下的开发效率
解决:复杂的部署流程
解决:第三方技术集成难度大
优点
快速构造项目
对主流开发框架的无配置集成
项目可独立运行,无须外部依赖Servlet容器
提供运行时的应用监控
极大地提高开发、部署效率
与云计算天然集成
配置
@SpringBootApplication
组合注解
@Configuration
@EnableAutoConfiguration
@ComponentScan
关闭特定自动配置
@SpingBootApplication(exclue = {DataSourceAutoConfiguration.class})
配置文件
application.properties 或 application.yml
路径:src/main/resources/ 或 classpath:config/
@PropertySource
加载其它properties配置文件,但不支持yml文件
注意:不能被外部配置文件覆盖值
@ImportSource
加载xml配置文件
配置文件优先级
1.命令行参数
2.项目路径/config/
3.项目路径
4.classpath:config/
5.classpath
配置文件maven过滤:@name@ 代替 ${name}
@ConfigurationProperties:将properties文件和一个Bean关联,实现配置类型安全
条件注解@Conditional
@ConditionalOnBean:当容器下有指定的Bean的条件下
@ConditionalOnMissingBean:当容器里没有指定Bean的条件下
@ConditionalOnClass:当类路径下有指定的类的条件下
@ConditionalOnMissingClass:当类路径下没有指定的类的条件下
@ConditionalOnExpression:基于SpEL表达式作为判断条件
@ConditionalOnWebApplication:当前项目是Web项目的条件下
@ConditionalOnNotWebApplication:当前项目不是Web项目的条件下
@ConditionalOnProperty:指定的属性是否有指定的值的条件下
@ConditionalOnResource:类路径是否有指定的值的条件下
@ConditionalOnSingleCandidate:当指定Bean在容器中只有一个,或者虽然有多个但是指定首选的Bean
@ConditionalOnJava:基于JVM版本作为判断条件
@ConditionalOnJndi:基于JNDI存在的条件下查找指定的位置
自动配置实现原理
@EnableAutoConfiguration
@Import
类:EnableAutoConfigurationImportSelector
方法:SpringFactoriesLoader.loadFactoryNames
扫描:META-INF/spring.factories
Web支持
pom: spring-boot-starter-web
静态文件路径
classpath:static
classpath:public
classpath:resources
classpath:/META-INF/resources
模板文件路径
src/main/resources/templates
注册Servlet、Filter、Listener
使用@ServletContentScan 和 @WebServlet、@WebFilter、@WebListener 配置完成
注册ServletRegistrationBean、FilterRegistrationBean、ServletListenerRegistrationBean
常用注解
@Controller
@RestController
@RequestMapping
@GetMapping @PostMapping @DeleteMapping @PutMapping (4.3版新增)
@RequestBody
@ResponseBody
@RequestParam
@PathVariable
@RequestHeader
@CookieVaule
对于实现了Converter接口的类,并加上@Component注解,SpringBoot能够自动注册到转换器工厂
MyBatis支持
pom: mybatis-spring-boot-starter
mapper接口:
@MapperScan("com.company.production.dao")
mapper.xml : mybatis.mapper-locations=classpath*:com/**/*Mapper.xml
注意:如果要打包成war运行,则mapper.xml的配置只能使用spring的xml配置sqlSessionFactory
常用启用自动配置注解
@EnableAspectJAutoProxy 启用AspectJ
@EnableCaching 启用缓存
@EnableAsync 启用异步方法
@EnableScheduling 启用定时任务
@EnableRedisHttpSession 启用RedisSession
@EnableTransactionManagement 启用事务管理
Spring Boot Actuator 监控
作用:运行时对应用的监控和管理
pom依赖
端点
测试
SpringJUnit4ClassRunner
@RunWith
@SpringApplicationConfiguration:加载指定的配置类
@WebAppConfiguration:启动一个模拟Web环境测试
MockMVC
MockHttpServletRequest
MockHttpServletResponse
MockHttpSession
注入WebApplicationContext
@WebIntegrationTest:启动一个集成了Servlet容器的测试程序
使用 Selenium 测试 HTML 页面
FirefoxDriver browser = new FirefoxDriver()
官方提供的starter pom
Spring Boot 配置属性
0 条评论
下一页