@ConfigurationProperties
可以非常方便的把资源文件中的内容绑定到对象上
 
@Value("${app.name}")
注入简单值

@Import

通过导入的方式实现把实例加入springIOC容器中

/**
* 定义一个圆形
*
* @author zhangqh
* @date 2018年5月1日
*/
public class Circular {
}

  

/**
* 定义一个正方形
*
* @author zhangqh
* @date 2018年5月1日
*/
public class Square {
}

MainConfig注解配置中增加@Import注解如下:

@Import({Square.class,Circular.class})
@Configuration
public class MainConfig

 

AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class);
String[] beanNames = applicationContext2.getBeanDefinitionNames();
for(int i=0;i<beanNames.length;i++){
System.out.println("bean名称为==="+beanNames[i]);
}

运行结果:

bean名称为===mainConfig
bean名称为===com.zhang.bean.Square
bean名称为===com.zhang.bean.Circular

@RequestMapping

这个注解可以用于类和方法上,用于类上,表示父路径,如类上是demo,方法上是/demo1,那么访问路径就是demo/demo1

该注解有六个属性:
params:指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
value:指定请求的实际地址,指定的地址可以是URI Template 模式
method:指定请求的method类型, GET、POST、PUT、DELETE等
consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回

@PathVariable

对应路径上的变量,用在参数前,路径上的变量名需和参数名称一致

RequestMapping("demo/demo1/{name}")
public String say(@PathVariable String name){
  
}
@RequestHeader
@ApiOperation(value = "更新用户", notes = "更新用户")
@PutMapping("/user/updateUser")
public void updateUser(@RequestHeader("Authorization") String authorization);

@RequestParam

和以下代码的作用相同

String name =request.getParameter("name ")。

@RequestBody

是指方法参数被绑定到HTTP请求Body上,前端就不能用表单的方式提交了,需要用json的方式提交。

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
//可以绑定自定义的对象类型
}

@ResponseBody

表示输出的是json格式的数据。

@ModelAttribute

1.运用在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中,便于View层使用;

2.运用在方法上,会在每一个@RequestMapping标注的方法前执行,如果有返回值,则自动将该返回值加入到ModelMap中;

@Bean

相当于XML中的<bean></bean>,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

@Qualifier

当有多个同一类型的Bean时,可以用@Qualifier("name")来指定。与@Autowired配合使用

@Autowired

属于Spring 的org.springframework.beans.factory.annotation包下,可用于为类的属性、构造器、方法进行注值

@Resource

不属于spring的注解,而是来自于JSR-250位于java.annotation包下,使用该annotation为目标bean指定协作者Bean。

@Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。

注意:

@Autowired注解默认按照类型装配,如果容器中包含多个同一类型的Bean,那么启动容器时会报找不到指定类型bean的异常,解决办法是结合@Qualified注解进行限定,指定注入的bean名称。

@Resource如果没有指定name属性,并且按照默认的名称仍然找不到依赖对象时, @Resource注解会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。

@Autowired注解进行装配容易抛出异常,特别是装配的bean类型有多个的时候,而解决的办法是需要在增加@Qualitied进行限定。

组件类注解

@Component :标准一个普通的spring Bean类。 
@Repository:标注一个DAO组件类。 
@Service:标注一个业务逻辑组件类。 
@Controller:标注一个控制器组件类。

@Component可以代替@Repository、@Service、@Controller,因为这三个注解是被@Component标注的。被注解的java类当做Bean实例,Bean实例的名称默认是Bean类的首字母小写,其他部分不变。@Service也可以自定义Bean名称,但是必须是唯一的!

@SpringBootApplication

包含@Configuration、@EnableAutoConfiguration、@ComponentScan
通常用在启动类上。

@ComponentScan

组件扫描。如果扫描到有@Component @Controller @Service等这些注解的类,则把这些类注册为bean。

@Configuration

指出该类是 Bean 配置的信息源,相当于XML中的<beans></beans>,一般加在主类上。

@EnableAutoConfiguration

让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上。

@Profiles
Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。
任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

@Configuration
@Profile("prod")
public class ProductionConfiguration {
// ...
}

最新文章

  1. Ext.js的store里放model,还是field?
  2. django-- Models
  3. MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)
  4. Java设计模式(十一) 享元模式
  5. bash的操作环境[转]
  6. 算法分析 Analysis of Algorithms -------GeekforGeeker 翻译
  7. mysql 操作日期函数【增加,减少时间】
  8. System.Linq.Dynamic
  9. Dynamic - ExpandoObject学习心得
  10. [BZOJ 1055] [HAOI2008] 玩具取名 【记忆化搜索】
  11. IE浏览器中设为首页
  12. [转]fatal error: iostream.h: No such file or directory
  13. JS停止事件冒泡
  14. Ionic3 创建应用后,目录结构
  15. CADisplayLink以及定时器的使用
  16. 几种Unity运行平台的判断
  17. Intel微处理器学习笔记(一) 实模式内存结构
  18. duplicate files during packaging of apk
  19. 【转】 web 测试使用的chrome插件
  20. 【Oracle 12c】CUUG OCP认证071考试原题解析(32)

热门文章

  1. [ActionSprit 3.0] FMS服务器带宽检测
  2. ArchLinux下Shell基础学习
  3. Unity---解决重新调整游戏分辨率后,再运行游戏还是和之前分辨率一样的问题
  4. css图片+文字浮动(文字包围效果)
  5. weex 编译vue成js
  6. CoreImage 图片处理
  7. rest-assured之Schema validation(包括JSON Schema validation及Xml Schema validation)
  8. input 标签只能输入数字
  9. node.js修改全局安装文件路径
  10. redis中算法之——MurmurHash2算法