首页 > 其他分享 >SpringBoot常用注解

SpringBoot常用注解

时间:2022-12-12 21:55:55浏览次数:47  
标签:常用 SpringBoot bean class Bean 注解 public name

@SpringBootApplication
定义在main方法入口类,用于启动spring boot应用项目

@EnableAutoConfiguration
让spring boot根据类路径中的jar包依赖当前项目进行配置

@ImportResource
加载xml配置,一般是放在启动main类上
@ImportResource("classpath:/spring/.xml") 单个
@ImportResource({"classpath:/spring/1.xml","classpath:/spring/2.xml"}) 多个

@Value
application.properties定义属性,直接使用@Value注入即可

点击查看代码
public class A{
	 @Value("${push.start:0}")    如果缺失,默认值为0
     private Long  id;
}

@ComfigurationProperties(prefix="person")
可以新建一个properties文件,ConfigurationProperties的属性prefix指定properties的配置的前缀,通过location指定properties文件的位置

点击查看代码
@ConfigurationProperties(prefix="person")
public class PersonProperties {
	
	private String name ;
	private int age;
}

@EnableConfigurationProperties
用@EnableConfigurationProperties注解使@ConfigurationProperties生效,并从IOC容器中获取bean

@RestController
组合@Controller和@ResponseBody,当你开发一个和页面交互数据的控制室,比如bbs-web的api接口需要此注解

RequestMapping("/api/copper")
用来映射web请求(访问路径和参数),处理类和方法,可以注解在类或方法上。注解在方法上的路径会继承注解在类上的路径。
produces属性:定制返回的response的媒体类型和字符集,或需返回值是json对象。
@RequestMapping(value="/api2/copper",produces="application/json;charset=UTF-8",method = RequestMethod.POST)

@ReuestParam
获取request请求的参数值

点击查看代码
public List<CopperVO> getOpList(HttpServletRequest request,
                                    @RequestParam(value = "pageIndex", required = false) Integer pageIndex,
                                    @RequestParam(value = "pageSize", required = false) Integer pageSize) {
 
  }

@ReponseBody
支持将返回值放在response体内,而不是返回一个页面。比如Ajax接口,可以用词注解返回数据而不是页面。此注解可以放置在返回值前或方法前。

@Bean
@Bean(name="bean的名字",initMethod="初始化时调用方法名字",destroyMethod="close")
定义在方法上,在容器内初始化一个bean实例类。

点击查看代码
@Bean(destroyMethod="close")
@ConditionalOnMissingBean
public PersonService registryService() {
		return new PersonService();
	}

@Service
用于标注业务层组件

@Controller
用于标注控制层组件(如struts中的action)

@Repository
用于标注数据访问组件,即DAO组件

@Component
泛指组件,当组件不好归类的时候,我们可以使用这个组件进行标注。

PostConstruct
spring容器初始化时,要执行该方法

点击查看代码
@PostConstruct  
public void init() {   
}   

@PathVariable
同来获得请求url中的动态参数

点击查看代码
@Controller  
public class TestController {  

     @RequestMapping(value="/user/{userId}/roles/{roleId}",method = RequestMethod.GET)  
     public String getLogin(@PathVariable("userId") String userId,  
         @PathVariable("roleId") String roleId){
           
         System.out.println("User Id : " + userId);  
         System.out.println("Role Id : " + roleId);  
         return "hello";  
     
     }  
}

@ComponentScan
注解会告知spring扫描指定的包来初始化spring

@EnableZuulProxy
路由网关的主要目的是为了让所有的微服务对外只有一个接口,我们只需要访问一个网关地址,即可由网关将所有的请求代理到不同的服务中。Spring Cloud是通过Zuul来实现的,支持自动路由映射到在Eureka Server上注册的服务,Spring Cloud提供了注解@EnableZuulProxy来启用路由代理

@Autowired
在默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛出 BeanCreationException 异常,并指出必须至少拥有一个匹配的 Bean。当不能确定 Spring 容器中一定拥有某个类的 Bean 时,可以在需要自动注入该类 Bean 的地方可以使用 @Autowired(required = false),这等于告诉 Spring: 在找不到匹配 Bean 时也不报错@Autowired注解注入map、list与@Qualifier

@Configuration

点击查看代码
@Configuration("name")//表示这是一个配置信息类,可以给这个配置类也起一个名称
@ComponentScan("spring4")//类似于xml中的<context:component-scan base-package="spring4"/>
public class Config {

    @Autowired//自动注入,如果容器中有多个符合的bean时,需要进一步明确
    @Qualifier("compent")//进一步指明注入bean名称为compent的bean
    private Compent compent;

    @Bean//类似于xml中的<bean id="newbean" class="spring4.Compent"/>
    public Compent newbean(){
        return new Compent();
    }   
}

@Import(Config1.class)
导入Config1配置类里实例化的bean

点击查看代码
@Configuration
public class CDConfig {

    @Bean   // 将SgtPeppers注册为 SpringContext中的bean
    public CompactDisc compactDisc() {
        return new CompactDisc();  // CompactDisc类型的
    }
}

@Configuration
@Import(CDConfig.class)  //导入CDConfig的配置
public class CDPlayerConfig {

    @Bean(name = "cDPlayer")
    public CDPlayer cdPlayer(CompactDisc compactDisc) {  
         // 这里会注入CompactDisc类型的bean
         // 这里注入的这个bean是CDConfig.class中的CompactDisc类型的那个bean
        return new CDPlayer(compactDisc);
    }
}

@Order
@Order(1),值越小优先级越高,越先运行

@ConditionOnExpression

点击查看代码
@ConditionalOnExpression("${enabled:false}")
public class BigpipeConfiguration {
    @Bean
    public OrderMessageMonitor orderMessageMonitor(ConfigContext configContext) {
        return new OrderMessageMonitor(configContext);
    }
}

开关为true的时候才实例化bean

@ConditionalOnProxy
这个注解能够控制某个 @Configuration 是否生效。具体操作是通过其两个属性name以及havingValue来实现的,其中name用来从application.properties中读取某个属性值,如果该值为空,则返回false;如果值不为空,则将该值与havingValue指定的值进行比较,如果一样则返回true;否则返回false。如果返回值为false,则该configuration不生效;为true则生效

@ConditionalOnClass
该注解的参数对应的类必须存在,否则不解析该注解修饰的配置类

点击查看代码
@Configuration
@ConditionalOnClass({Gson.class})
public class GsonAutoConfiguration {
    public GsonAutoConfiguration() {
    }

    @Bean
    @ConditionalOnMissingBean
    public Gson gson() {
        return new Gson();
    }
}

@ConditionalOnMisssingClass({ApplicationManager.class})
如果存在它修饰的类的bean,则不需要再创建这个bean;

@ConditionOnMissingBean(name = "example")
表示如果name为“example”的bean存在,该注解修饰的代码块不执行。

标签:常用,SpringBoot,bean,class,Bean,注解,public,name
From: https://www.cnblogs.com/cxd424/p/16977211.html

相关文章

  • IDEA 常用快捷键
    通用型说明快捷键复制代码-copyctrl+c粘贴-pastectrl+v剪切-cutctrl+x撤销-undoctrl+z反撤销-redoctrl+shift+z保存-saveallctrl+s全......
  • 常用到的数据库表增删改查操作
    工作中,常用到的几个关于表的操作,做个记录:1.表的查询查询数量:SELECTcount(*)FROM表名;查询多个字段内容:SELECT字段1,字段2,字段3FROM表名;查询多个字段下的......
  • ES常用查询
    查询集群状态命令:curl-XGET"http://127.0.0.1:9200/_cluster/health?pretty"查询Es全局状态:curl-XGET"http://127.0.0.1:9200/_cluster/stats?pretty"查询集群设置cu......
  • SpringBoot+Vue实现第三方Gitee登录(二)
    1.准备工作_OAuth2(官网地址:开发流程)1.1 API使用条款  1.OSCHINA用户是资源的拥有者,需尊重和保护用户的权益。  2.不能在应用中使用OSCHINA的名称。  3.......
  • Kubernetes(k8s) kubectl set image常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......
  • MySql的常用函数
    调用:select函数名(实参列表)from表;1、单行函数如concat、length、iffnull等2.分组函数功能:做统计使用(统计函数、聚合函数、组函数)一、字符函数......
  • Kubernetes(k8s) kubectl set selector常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......
  • postman+springboot一次上传多个文件
     开发中到前端一次上传多个文件的需求如何实现,下面使用postman模拟前端的请求,后端使用srpingboot来实现1、postman设置   2、Java代码@RestController@Reque......
  • Kubernetes Flannel 高性能网络插件的两种常用工作模式
      Flannel是为Kubernetes设计的一种简单易用的容器网络解决方案,将所有的Pod都组织在同一个子网的虚拟大二层网络中。Flannel支持的后端转发方式有许多种,本文将介绍其......
  • springmvc常用标签库
    input标签相当于text<form:inputpath="username"/></td>password标签<form:passwordpath="password"/>hidden标签<form:hiddenpath="id"/>textarea标签是一个支持多行输......