springboot 注解总结

springBoot注解知识点归纳:

    1、@RestController和@RequestMapping注解区别
        
        当实现REST ful web services时,response将一直通过response body发送。

        --@Controller:用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),
                        一般这个注解在类中,通常方法需要配合注解@RequestMapping

        --@RequestMapping:注解提供路径信息,通过来自"/"路径的HTTP请求都应该被映射到 home 方法
    
        --@RestController:用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集

    2、@EnableAutoConfiguration
    
           注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。
           
           由于spring-boot-starter-web添加了Tomcat和spring MVC,所以auto-configuration将嘉定你在开发一个web应用
        并相应地对Spring进行配置。在运用过程中,@EnableAutoConfiguration 或 @SpringBootApplication 注解添加到一个
        @Configuration 类上来选择自动配置,它一般用在主 @Configuration 类。
            当如果不需要特定的自动配置功能,可以用使用@EnableAutoConfiguration排除属性并禁用,如:
        @Configuration@Configuration  
        @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
   
    3、@Configuration
    
          @Configuration注解该类,等价于XML中配置beans;用@Bean标注方法等价于XML中配置bean,如:
        @ComponentScan(basePackages = "com.*",includeFilters = {@ComponentScan.Filter(Aspect.class)})

    4、@ComponentScan
    
          表示将该类自动发现(扫描)并注册为Bean,可以自动收集所有的Spring组件,包括
        @Configuration,@Autowired,@Service,@Repository等注册的类

    5、@SpringBootApplication
    
          等同于@Configuration ,@EnableAutoConfiguration 和 @ComponentScan三个配置,主要是因为在同一个类
        中可能会频繁的运用这三个注解,springBoot便再次封装他们。
    
    6、@ConfigurationProperties
    
          直接指定properties文件的内容,属性prefix,如:
        @ConfigurationProperties(prefix="connection")
    
    7、@ResponseBody
    
          @ResponseBody--表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据中,加上@responsebody后返回结果
        不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,
        会直接返回json数据。
          @RequestMapping--在使用@RequestMapping后,返回值通常解析为跳转路径。
    
    8、@Component
    
          泛指组件,当组件不好归类的时候,可以使用@Component进行标识,一般加在公共方法上。
    
    9、@AutoWired、@Service和@Repository
    
          --@AutoWired:byType方式,自动导入。利用配置好的Bean,完成属性、方法的组装,
          它可以对类成员变量、方法及构造函数进行注解,完成在本类的工作。
        注:当加上(required=false)时,即使找不到bean也不报错。
        
          --@Service:一般用于修饰service层的组件
          
          --@Repository:使用@Repository注解可以确保DAO或者repositories提供异常转译,
                        这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,
                        同时也不需要为它们提供XML配置项。
                        
          --@Inject:等价于默认的@Autowired,只是没有required属性;                
    10、@RequestParam、@PathVariable和@PathParam
    
          --@RequestParam:是从request里面拿取值
        
          --@PathVariable:@PathVariable 是从一个URI模板里面来填充
          示例:
            @RequestMapping("/hello/{id}")
            public String getDetails(@PathVariable(value="id") String id,
                @RequestParam(value="param1", required=true) String param1,
                @RequestParam(value="param2", required=false) String param2){
                .......
            }
          --@PathParam:这个注解是和spring的pathVariable是一样的,也是基于模板的,但是这个是jboss包下面的一个实现,
            上面的是spring的一个实现,都要导包。
   
    11、@ControllerAdvice和@ExceptionHandler(Exception.class)
    
          --@ControllerAdvice
            处理全局异常,包含@Component,可以扫面到,统一处理。
          --@ExceptionHandler
            用在方法上面表示遇到这个异常就执行以下方法。
    
    12、@value
    
          读取application.properties里面的配置,key,如:
        @Value("${face_api_key}")  
        private String API_KEY;
   
    13、@PropertySource 和@ImportResource
    
          --@PropertySource:如果需要有自定义的属性文件需要加载,
                            可以使用该注解进行注入,并用@Value配合使用
          --@ImportResource:

    14、@Bean
    
          用@Bean标注方法等价于XML中配置的bean
        @Value(value = "#{message}") private String message
    
JPA注解:
    
    15、@Entity和@Table
    
            @Entity:@Table(name=”“):表明这是一个实体类。
        一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略
    
    16、@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”)
    
            表示主键生成策略是sequence(可以为Auto、IDENTITY、native等,Auto表示可在多个数据库间切换),
        指定sequence的名字是repair_seq。
    
    17、@Basic(fetch=FetchType.LAZY)
    
            标记可以指定实体属性的加载方式。
            
    18、@OneToOne、@OneToMany、@ManyToOne
    
            对应hibernate配置文件中的一对一,一对多,多对一。
    
    19、@Id:表示该属性为主键。
    
    20、@Column:如果字段名与列名相同,则可以省略。

   

你可能感兴趣的:(springboot 注解总结)