
引入spring-boot-starter-cache依赖
@EnableCaching
在SpringBoot启动器上添加注解,开启缓存。
@Cacheable
在方法上添加此注解,若不指定key则以传入参数生成key,缓存该方法的返回参数。
@CacheEvict
在方法上添加此注解,若不指定key则以传入参数生成key,删除该缓存。
@CachePut
在方法上添加此注解,若不指定key则以传入参数生成key,调用该方法后更新缓存。
引入spring-boot-starter-data-redis依赖,SpringBoot会自动切换
applicationproperties中添加redis主机地址:springredishost=19216837135
@Autowired
StringRedisTemplate stringRedisTemplate;//键值对都为String的 *** 作器
@Autowired
RedisTemplate redisTemplate;//键值对都为对象的 *** 作器,对象需继承序列号接口
自定义RedisTemplate可实现不同的序列化方式,默认为jdk序列化方式。
添加自定义缓存管理器(需定义泛型),在service里添加@CacheConfig(cacheManager="")注解指定缓存管理器。
@Async
此注解标注在方法或类型上,可开启异步处理。
@EnableScheduling
在SpringBoot启动器上添加注解,开启定时任务。
@Scheduled
可以在方法和注解类型上添加注解,设置任务的定时规则。
引入spring-boot-starter-mail
配置applicationproperties
注入邮件发送bean
发送简单邮件
发送带附件的邮件
引入jar包
spring-boot-starter-security
创建一个配置类,继承WebSecurityConfigurerAdapter,需要注解@EnableWebSecurity开启,重写configure(>
springboot常用注解有@SpringBootApplication;@Repository;@Service;@RestController;@ResponseBody。
1、Spring Boot 是 Pivotal 团队在 Spring 的基础上提供的一套全新的开源框架,其目的是为了简化 Spring 应用的搭建和开发过程。Spring Boot 去除了大量的 XML 配置文件,简化了复杂的依赖管理。Spring Boot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。
2、@SpringBootConfiguration注解,继承@Configuration注解,主要用于加载配置文件。@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类, 并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
3、starter 是 SpringBoot 中一种非常重要的机制,它可以繁杂的配置统一集成到 starter 中,我们只需要通过 maven 将 starter 依赖引入到项目中,SpringBoot 就能自动扫描并加载相应的默认配置。starter 的出现让开发人员从繁琐的框架配置中解放出来,将更多的精力专注于业务逻辑的开发,极大的提高了开发效率。
简单demo
使用 maven 构建项目,官方现在稳定版本是154,第一个入门demo不是web项目,pom依赖如下:
实体 User 类:
配置类:
入口类 Application :
项目结构目录
启动程序,以 main 方法启动:
打印出正确的结果。
来分析一下流程,为何 Runnable 类, User , Map 会纳入spring容器。
首先我们分析的就是入口类 Application 的启动注解 @SpringBootApplication ,进入源码:
发现 @SpringBootApplication 是一个复合注解,包括 @ComponentScan ,和 @SpringBootConfiguration , @EnableAutoConfiguration 。
根据上面的理解,上面的入口类 Application ,我们可以使用:
使用 @ComponentScan 注解代替 @SpringBootApplication 注解,也可以正常运行程序。原因是 @SpringBootApplication 中包含 @ComponentScan ,并且 springboot 会将入口类看作是一个 @SpringBootConfiguration 标记的配置类,所以定义在入口类 Application 中的 Runnable 也可以纳入到容器管理。
看一个demo学会使用这些参数配置
在包下comzhihaomiaospringboot定义一个启动应用类(加上@SpringBootApplication注解)
在comzhihaomiaobeans包下定义一个实体类,并且想将其纳入到spring容器中,
启动启动类,打印结果如下:
说明Cat类并没有纳入到spring容器中,这个结果也如我们所想,因为@SpringBootApplication只会扫描@SpringBootApplication注解标记类包下及其子包的类(特定注解标记,比如说@Controller,@Service,@Component,@Configuration和@Bean注解等等)纳入到spring容器,很显然MyConfig不在@SpringBootApplication注解标记类相同包下及其子包的类,所以需要我们去配置一下扫包路径。
修改启动类,@SpringBootApplication(scanBasePackages = "comzhihaomiao"),指定扫描路径:
启动并打印:
当然使用@SpringBootApplication(scanBasePackageClasses = MyConfigclass),指定scanBasePackageClasses参数的value值是你需要扫描的类也可以,结果一样,不过如果多个配置类不在当前包及其子包下,则需要指定多个。
再看一个列子,
在上面的列子的相同包下(comzhihaomiaospringboot)配置了People,并将其纳入到spring容器中(@Component),我们知道@SpringBootApplication注解会扫描当前包及其子包,所以People类会纳入到spring容器中去,我们需要将其排除在spring容器中,如何 *** 作?
可以使用@SpringBootApplication的另外二个参数(exclude或excludeName)
启动类,
启动并打印结果:
然后修改@SpringBootApplication配置,
很明显启动报错。使用@excludeName注解也可以。如下,
@SpringBootApplication(excludeName = {"comzhihaomiaospringbootPeople"})
参考文档:
Springboot154官方文档
以上就是关于SpringBoot笔记全部的内容,包括:SpringBoot笔记、Spring Boot教程第5篇:beatsql、springboot常用注解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)