- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
@Component:泛指各种组件
@Controller、@Service、@Repository都可以称为@Component。
@Controller:控制层
@Service:业务层
@Repository:数据访问层
@Conditional,当指定的条件都满足时,组件才被注册
@ConditionalOnBean,指定bean在上下文中时,才注册当前bean。用在方法上,则默认依赖类为方法的返回类型
@ConditionalOnClass,指定类在classpath上时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型
@ConditionalOnCloudPlatform,在指定云平台才注册配置
@ConditionalOnExpression,指定spel为true时注册配置
@ConditionalOnJava,在指定java版本时注册配置
@ConditionalOnJndi
@ConditionalOnMissingBean,指定bean不在上下文中时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型
@ConditionalOnMissingClass,指定类不在classpath上时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型
@ConditionalOnNotWebApplication,不是在web环境才注册配置
@ConditionalOnProperty,配置文件中的值与指定值是否相等,相等才注册配置
@ConditionalOnResource,指定resources都在classpath上才注册配置
@ConditionalOnSingleCandidate,上下文中只有一个候选者bean时才注册配置
@ConditionalOnWebApplication,是在web环境才注册配置
@Autowired:由spring提供
1.@Autowired可以作用在变量、setter方法、构造函数上
2.有个属性为required,可以配置为false
@Resource:由jdk提供
@Primary:让spring进行自动装配的时候,默认使用首选的bean
@Autowired是默认按照类型匹配的,@Resource是按照名称匹配的,@Autowired如果需要按照名称匹配需要和@Qualifier一起使用
@Bean(initMethod="init",destoryMethod="destory")
@PostConstruct:初始化方法;@PreDestory:销毁方法
@Configuration:声明当前类为配置类
@Bean:注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式
@ComponentScan:用于对Component进行扫描
@Scope注解是springIoc容器中的一个作用域(方法上,得有@Bean)
Singleton:单例,一个Spring容器中只有一个bean实例,默认模式
Protetype:多例,每次获取Bean的时候会有一个新的实例
Request:web项目中,给每个http request新建一个bean
Session:web项目中,给每个http request新建一个bean
GlobalSession:给每一个 global http session新建一个Bean实例
@Scope(value=“prototype”)
1.基本数值
@Value("张三")
private String name;
2.读取配置文件
@Value("${person.nickName}")
private String nickName;
3.写SpEL表达式
@Value("#{20-2}")
private Integer age;
@EnableAspectAutoProxy:开启对AspectJ自动代理的支持;
@EnableAsync:开启异步方法的支持;
@EnableScheduling:开启计划任务的支持;
@EnableWebMvc:开启web MVC的配置支持;
@EnableConfigurationProperties:开启对@ConfigurationProperties注解配置Bean的支持;
@EnableJpaRepositories:开启对SpringData JPA Repository的支持;
@EnableTransactionManagement:开启注解式事务的支持;
@EnableCaching:开启注解式的缓存支持;
@PropertySource
@PropertySource(value = {"classpath:xxxx/xxxx.properties"})
@PropertySource(value = {"classpath:xxxx/xxxx.properties","classpath:xxxx/xxxx.properties"})
@ConfigurationProperties
指定读取配置文件的规则,比如前缀是什么,不存在的字段是否可以忽略等
@ConfigurationProperties(prefix = "suning.rocketmq")
@Value
@Value("${properties中的键}")
private String xxx;
@Import
:要导入到容器中的组件
@Import({Color.class, MyImportSelector.class, MyImportBeanDefinitionRegistrar.class})
public class MainConfig2 {
@Scope("prototype")
@Bean("person")
public Person person() {
System.out.println("我是Person");
return new Person("素小暖",25);
}
}
@EnableWebMvc:在配置类中开启Web MVC的配置支持
@Controller:
@RequestMapping:用于映射web请求,包括访问路径和参数
@ResponseBody:支持将返回值放到response内,而不是一个页面,通常用户返回json数据
@RequestBody:允许request的参数在request体中,而不是在直接连接的地址后面
@PathVariable:用于接收路径参数,比如@RequestMapping(“/hello/{name}”)声明的路径,将注解放在参数前,即可获取该值,通常作为Restful的接口实现方法
@RestController:相当于@Controller和@ResponseBody的组合
@ControllerAdvice:
全局异常处理,全局数据绑定,全局数据预处理
@ExceptionHandler:用于全局处理控制器里的异常
@ModelAttribute:
1.注释方法 :如果把@ModelAttribute放在方法的注解上时,代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法。可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。比如权限的验证(也可以使用Interceptor)等
2.注释一个方法的参数:当作为方法的参数使用,指示的参数应该从模型中检索。如果不存在,它应该首先实例化,然后添加到模型中,一旦出现在模型中,参数字段应该从具有匹配名称的所有请求参数中填充
@Transactional 注解放在类级别时,表示所有该类的公共方法都配置相同的事务属性信息。EmployeeService 的所有方法都支持事务并且是只读。当类级别配置了@Transactional,方法级别也配置了@Transactional,应用程序会以方法级别的事务属性信息来管理事务,换言之,方法级别的事务属性信息会覆盖类级别的相关配置信息。
@Transactional(propagation= Propagation.SUPPORTS,readOnly=true)
@Service(value ="employeeService")
public class EmployeeService
@Transactional 注解的属性信息
属性名 | 说明 |
---|---|
name | 当在配置文件中有多个 TransactionManager , 可以用该属性指定选择哪个事务管理器。 |
propagation | 事务的传播行为,默认值为 REQUIRED。 |
isolation | 事务的隔离度,默认值采用 DEFAULT。 |
timeout | 事务的超时时间,默认值为-1。如果超过该时间限制但事务还没有完成,则自动回滚事务。 |
read-only | 指定事务是否为只读事务,默认值为 false;为了忽略那些不需要事务的方法,比如读取数据,可以设置 read-only 为 true。 |
no-rollback- for | 抛出 no-rollback-for 指定的异常类型,不回滚事务。 |
@EnableScheduling,开启定时任务功能
@Scheduled,按指定执行周期执行方法
@Schedules,包含多个@Scheduled,可同时运行多个周期配置
@EnableAsync,开启方法异步执行的能力,通过@Async或者自定义注解找到需要异步执行的方法。通过实现AsyncConfigurer接口的getAsyncExecutor()和getAsyncUncaughtExceptionHandler()方法自定义Executor和异常处理。
@Async,标记方法为异步线程中执行
@EnableCaching,开启缓存配置,支持子类代理或者AspectJ增强
@CacheConfig,在一个类下,提供公共缓存配置
@Cacheable,放着方法和类上,缓存方法或类下所有方法的返回值
@CachePut,每次先执行方法,再将结果放入缓存
@CacheEvict,删除缓存
@Caching,可以配置@Cacheable、@CachePut、@CacheEvict
此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响
//生成json时将name和age属性过滤
@JsonIgnoreProperties({"name"},{"age"})
public class user {
private String name;
private int age;
}
此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样
//生成json 时不生成age 属性
public class user {
private String name;
@JsonIgnore
private int age;
}
此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式
public class User{
@JsonFormat(pattern = “yyyy-MM-dd HH-mm-ss”)
private Date date;
}
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic
标注在类上,当其他类有该类作为属性时,该属性将被忽略
@JsonProperty 可以指定某个属性和json映射的名称。例如我们有个json字符串为{“user_name”:”aaa”},
而java中命名要遵循驼峰规则,则为userName,这时通过@JsonProperty 注解来指定两者的映射规则即可。这个注解也比较常用
public class SomeEntity {
@JsonProperty("user_name")
private String userName;
}
此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点
此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize
SpringBoot-Admin 服务监控 简单介绍 Spring Boot Actuator 是 Spring Boot 自带的一个功能模块, 提供了一组已经开箱即用的生产环境下常用
我想查找通过关键字匹配字段 nameEnglish 或 nameChinese 的模型列表。我花了一个多小时谷歌搜索但我做不到。请帮忙。 Springboot Mongo 入门示例 https://s
(请注意:在调查 this issue 时,我更好地发现了我在此处介绍的问题根源) 我对 Hibernate 和 SpringBoot 非常陌生。我的项目涉及一个搜索引擎,其中索引(javafx 客户
我最近有一个 Web 应用程序从 springboot 升级到 springboot 2。当我将其部署到 Tomcat 8 时,它似乎启动了,但没有完全启动。 在 localhost.2019-09-
我是 Spring boot 的新手...我在运行 Controller 时遇到问题, Description: Field todoService in com.springboot.todoCon
我有一个SpringBoot应用程序,它使用以下配置与PostgreSQL通信,通过AWS Beanstrik部署:。在我将AWS Aurora证书更新为rds-ca-ecc384-g1之前,一切都很
实在是不知道标题写什么了 可以在评论区给个建议哈哈哈哈 先用这个作为标题吧 尝试使用 国内给出的 AI 大模型做出一个 可以和 AI 对话的 网站出来 使用 智普AI 只能 在控制
一、介绍 在实际的软件系统开发过程中,由于业务的需求,在代码层面实现数据的脱敏还是远远不够的,往往还需要在数据库层面针对某些关键性的敏感信息,例如:身份证号、银行卡号、手机号、工资等信息进行加密存储
Selenium Selenium是一个用于Web应用程序自动化测试的开源工具套件。它主要用于以下目的: 浏览器自动化:Selenium能够模拟真实用户在不同浏览器(如Chrome、Fire
一、简介 在实际的项目开发过程中,经常需要用到邮件通知功能。例如,通过邮箱注册,邮箱找回密码,邮箱推送报表等等,实际的应用场景非常的多。 早期的时候,为了能实现邮件的自动发送功能,通常会使用 Ja
SpringBoot:基于redis自定义注解实现后端接口防重复提交校验 一、添加依赖 org.springframework.boot spring
SpringBoot:使用Jackson完成全局序列化配置 一、测试准备 com.fasterxml.jackson.core jackson-cor
springboot:整合rocketmq 一、简易消息操作 生产者整合mq 导入依赖 org.springframework.boot
springboot:常用注解 一、spring常用注解 包扫描+组件标注注解 @Component:泛指各种组件 @Controller、@Service、@Repository都可以称为@Comp
我们经常需要在两个系统之间进行一些数据的交互,这时候我们就需要开发数据交互接口。 一般来说,遇到比较多的接口有HTTP接口、WebService接口、FTP文件传输。今天我要来学习一下在SpringB
背景 近期项目上线,甲方要求通过安全检测才能进行验收,故针对扫描结果对系统进行了一系列的安全加固,本文对一些常见的安全问题及防护策略进行介绍,提供对应的解决方案 跨站脚本攻击 XSS常发生于论坛评论等
1.排除 Spring-boot-starter 默认的日志配置 将原本的 spring-boot-starter 改为 org.springframework.boot
springboot:解决跨域问题 一、跨域简介 URL的组成: // 协议 + 域名(子域名 + 主域名) + 端口号 + 资源地址 http://www.baidu.com:8080/ 只要协
一、自定义Starter 的思路: 创建一个Maven工程,创建三个模块 一个模块为demo-app,一个模块为demo-module,一个模块为demo-module-springboot-star
1.pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent
我是一名优秀的程序员,十分优秀!