SpringBoot笔记

SpringBoot笔记,第1张

引入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常用注解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9770331.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存