精华内容
下载资源
问答
  • 本篇文章将介绍几种SpringBoot常用注解及各个注解的作用,感兴趣的朋友跟随脚本之家小编一起学习吧
  • 菜鸟的springboot常用注解总结

    万次阅读 多人点赞 2020-08-12 22:15:33
    菜鸟的springboot常用注解总结说明@SpringBootApplication@Component,@Service,@Controller,@Repository@ResponseBody@RestController@AutoWired 说明 更新时间:2020/7/14 17:32,更新了整体内容 本文主要对网上的...

    说明

    更新时间:2020/8/12 22:14,更新了@RequestParam等注解
    更新时间:2020/8/6 18:00,更新了@AutoWired等注解
    更新时间:2020/8/2 17:32,更新了@SpringBootApplication等注解

    本文主要对网上的springboot常见注解和自己本人在学习的过程中遇到的注解的一次总结,本文会持续更新,不断地扩充

    本文仅为记录学习轨迹,如有侵权,联系删除

    @SpringBootApplication

    包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上;
    在这里插入图片描述

    相关注解说明
    @ComponentScan用来自动扫描被这些注解标识的类,最终生成ioc容器里的bean,默认扫描范围是@ComponentScan注解所在配置类包及子包的类
    @SpringBootConfiguration与@Configuration作用相同,都是用来声明当前类是一个配置类,这里表明是springboot主类使用的配置类
    @EnableAutoConfiguration是springboot实现自动化配置的核心注解,通过这个注解把spring应用所需的bean注入容器中

    @Component、@Service、@Controller、@Repository

    这几个注解放在一起是因为功能基本一样的,都是将类注入到spring容器中,只不过它们使用的场景不同,被@Component,@Service,@Controller,@Repository注解标注的类,这些类会被纳入进spring容器中管理。

    注解说明
    @Repository持久层(dao)注入spring容器
    @Service业务逻辑层(server)注入spring容器
    @Controller控制层(controller)注入spring容器
    @Component普通pojo注入spring容器

    @ResponseBody

    @ResponseBody可以作用在方法上或类上,表示该方法的返回结果直接写入 HTTP response body 中,而不会被解析为跳转路径,即不会经过视图解析器,返回什么数据即在页面输入什么数据。

    注解说明
    @ResponseBody@ResponseBody的作用其实是将java对象转为json格式的数据。

    测试如下
    在这里插入图片描述

    @RestController

    该注解是@Controller和@ResponseBody的结合体,一般用于类,作用等于在类上面添加了@ResponseBody和@Controller

    @AutoWired、@Qualifier、@Resource

    这3个注解都是基于注解方式进行自动装配,在容器里面将查找到的bean返回,一般@AutoWired用得最多,@Qualifier则需要配合@AutoWired使用,@Resource则是可以通过名字进行自动装配

    注解说明
    @AutoWired@Autowired默认按类型装配,如果发现找到多个bean,则按照name方式比对,如果还有多个,则报出异常
    @Qualifierspring的注解,按名字注入 一般当出现两个及以上bean时,不知道要注入哪个,结合@AutoWired使用
    @Resource默认按名称注入例如@Resource(name = “zhaozhao”)则根据name属性注入找不到则报错,若无name属性则根据属性名称注入,如果匹配不成功则按照类型匹配匹配不成功则报错。

    @AutoWired
    在这里插入图片描述
    @Qualifier
    当有一个接口的多个实现类时,只用@AutoWired会报错,因为它有多个接口的实现类,不知道你要找哪一个,这个时候就需要在注入bean的时候起个名字,然后用@Qualifier注解指定哪一个bean(按照名字注入与装配)
    在这里插入图片描述
    @Resource
    该注解的使用相当于@AutoWired和@Qualifier配合使用的效果
    在这里插入图片描述

    @RequestMapping、@GetMapping、@PostMapping

    这3个注解功能也是类似的,通过这3个注解来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,用在方法上,可以通过配置的url进行访问

    注解说明
    @RequestMapping@RequestMapping(url),通过该注解就可以通过配置的url进行访问,方式可以是get或post请求,两种方式均可
    @GetMapping@GetMapping(url) ,功能类似的,只是这个限定了只能是Get请求
    @PostMapping@PostMapping(url),功能类似的,只是这个限定了只能是Post请求

    @RequestMapping
    发起get请求或者post请求都可以
    在这里插入图片描述

    @GetMapping
    只能用get请求
    在这里插入图片描述

    @PostMapping
    只能发起post请求
    在这里插入图片描述

    @Value、@ConfigurationProperties、@PropertySource

    注解说明
    @Value用于获取bean的属性,一般用于读取配置文件的数据,作用在变量上
    @ConfigurationProperties用于注入Bean属性,然后再通过当前Bean获取注入值,作用在类上
    @PropertySource用于指定要读取的配置文件,可以和@Value或@ConfigurationProperties配合使用

    注意:@PropertySource不支持yml文件读取。

    @Value
    这里用yml配置文件进行演示,propres配置文件也是同样的效果,在application.yml配置文件里设置开发环境的的配置文件(dev),这样用@Value获取到的就是开发环境的配置文件的数据,切换成生产环境(pro)则获取到的是生产环境的数据
    在这里插入图片描述
    在这里插入图片描述
    @ConfigurationProperties
    该注解可以直接注入整个类的数据,作用于类

    配置文件如下,这里使用pro环境
    在这里插入图片描述
    测试
    在这里插入图片描述

    @PropertySource

    注意:@PropertySource不支持yml文件读取。
    配置文件如下:people.properties
    在这里插入图片描述
    测试
    在这里插入图片描述
    当然@PropertySource还可以和@Value配合使用,即一个一个注入值。

    @Configuration、@Bean

    @Configuration作用于类上面,表明这是一个配置类,@Bean产生一个Bean对象加入Spring IOC容器

    注意:@Configuration标注在类上,相当于把该类作为spring的xml配置文件中,作用为:配置spring容器(应用上下文)

    注解说明
    @Configuration作用于类上表示这是一个配置类,可理解为用spring的时候xml里面的< beans>标签
    @Bean产生bean对象加入容器,作用于方法,可理解为用spring的时候xml里面的标签

    一般这两个注解同时配合使用

    新建配置类,将User加入容器,并自定义生命周期
    在这里插入图片描述
    测试
    在这里插入图片描述

    @RequestParam、@RequestBody、@PathVariable、@RequestHeader、@CookieValue

    这3个注解放在一起主要是经常在控制层用来接收参数的

    注解说明
    @RequestParam获取查询参数。即url?name=这种形式
    @PathVariable获取路径参数。即url/{id}这种形式。
    @RequestParam获取Body的参数,一般用于post获取参数
    @RequestHeader获取请求头的信息
    @CookieValue获取Cookie的信息

    @RequestParam
    @RequestParam主要用于接收url?后面的参数,get或post请求,只要后面的url?有参数都可以获取到对应的参数

    @RequestParam注解有几个比较重要的属性,required 表示是否必须,默认为 true,必须。defaultValue 可设置请求参数的默认值。value 为接收url的参数名(相当于key值)。

    示例代码如下

        @GetMapping("/requestParam")
        @ResponseBody
        public Map<String, String> requestParam(
                UserDto userDto,//通过一个实体类来接收,字段名必须一致
                @RequestParam(value = "id", required = false) String userId,
                @RequestParam(value = "name", required = false) String userName,
                @RequestParam(value = "pageIndex", required = true, defaultValue = "1") String pageIndex,
                @RequestParam(value = "pageSize", required = true, defaultValue = "5") String pageSize) {
    
            Map<String, String> map = new HashMap<>();
            map.put("userDto",userDto.toString());
            map.put("id", userId);
            map.put("name", userName);
            map.put("pageIndex", pageIndex);
            map.put("pageSize", pageSize);
            return map;
        }
    

    运行
    在这里插入图片描述

    @PathVariable
    该注解主要用于获取路径参数,像url/{id}/{name}这种形式的参数都可以,get获取post请求均可

    示例代码如下:

        @PostMapping("/pathVariable/{id}/{name}")
        @ResponseBody
        public Map<String, String> pathVariable(
                @PathVariable(name = "id") String userId,
                @PathVariable(name = "name") String userName) {
    
            Map<String, String> map = new HashMap<>();
            map.put("id", userId);
            map.put("name", userName);
            return map;
        }
    

    运行结果

    在这里插入图片描述

    @RequestBody
    该注解用于获取请求体数据(body),get没有请求体,故而一般用于post请求

    示例代码如下:

        @PostMapping("/test01")
        @ResponseBody
        public UserDto test01(@RequestBody UserDto userDto) {
            return userDto;
        }
    
        @PostMapping("/test02")
        @ResponseBody
        public String test02(@RequestBody String str) {
            return str;
        }
    

    运行结果
    在这里插入图片描述
    在这里插入图片描述

    注意,如果要传多个参数过去只能将其封装成一个类,如果是出现了多个@RequestBody注解访问的时候会报400错误,例如下面这种代码就是错误的

        @PostMapping("/requestBody")
        @ResponseBody
        public Map<String,String> requestBody(
                @RequestBody(required = true) String id,
                @RequestBody(required = true) String name,
                @RequestBody(required = false) String sex,
                @RequestBody(required = false) String age
                ){
    
            Map<String,String> map = new HashMap<>();
            map.put("id","id");
            map.put("name","name");
    
            return map;
        }
    

    @RequestHeader
    示例代码如下

        @PostMapping("/requestHeader")
        @ResponseBody
        public String requestBody03(@RequestHeader(name = "Content-Type") String contentType){
            return contentType;
        }
    

    运行结果
    在这里插入图片描述

    @CookieValue
    由于postman模拟cookie本人不会弄,只能用别人的代码

    @GetMapping("/demo3")
    public void demo3(@RequestHeader(name = "myHeader") String myHeader,
            @CookieValue(name = "myCookie") String myCookie) {
        System.out.println("myHeader=" + myHeader);
        System.out.println("myCookie=" + myCookie);
    }
    
    展开全文
  • SpringBoot常用注解

    千次阅读 2019-01-23 15:02:44
    常用注解介绍: @SpringBootApplication:启动类注解。  在具有main方法的类上添加此注解,表示此处为SpringBoot程序的入口,即程序的启动类。 @SpringBootConfiguration(推荐)或@Configuration:配置类注解。 ...

    常用注解介绍:

    @SpringBootApplication:启动类注解。

     在具有main方法的类上添加此注解,表示此处为SpringBoot程序的入口,即程序的启动类。

    @SpringBootConfiguration(推荐)或@Configuration:配置类注解。

      一般配置信息会在项目的.yml或.properties文件中,但也可以创建配置类,在类上添加此注解,表明此类是配置类,可以在里面做些配置信息。

    @EnableAutoConfiguration:表示自动配置。

    @ComponentScan:表示 Spring Boot 扫描 Bean 的规则,比如扫描哪些包。

    @EnableCaching:完成简单的缓存功能。

    @EnableScheduling:自带的定时任务注解。

    @EnableTransactionManagement:开启事务支持,在访问数据库的Service方法上添加注解 @Transactional 便可。

    @Bean:这个注解是方法级别上的注解,主要添加在 @Configuration 或 @SpringBootConfiguration 注解的类,有时也可以添加             在 @Component 注解的类。它的作用是定义一个Bean。在带有此注解的类中可以注入其他Bean,其他Bean中也可以注入此类。

    @Value:在代码中引入配置文件内容,比如:

                          @Value("${server.port}")

    @Autowired:注入需要的Bean

    @ResponseBody:注解在方法上,返回json类型数据

    @RequestMapping:映射注解  可以指定请求方式      

            @RequestMapping(value = "", method = RequestMethod.GET)

            也可以通过映射注解指定访问方式:

               @GetMapping:get请求
               @PosttMapping:post请求

     

        

    展开全文
  • springboot常用注解

    2018-03-29 20:42:40
    原文出自点击打开链接@SpringBootApplication:包含 @Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上。@Repository:用于标注数据访问组件,即 DAO 组件。@Service:用于标注业务层组件。@...

    原文出自点击打开链接

    @SpringBootApplication:

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

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

    @Service:
    用于标注业务层组件。

    @RestController:
    用于标注控制层组件(如 struts 中的 action),包含 @Controller 和 @ResponseBody。

    @ResponseBody:
    表示该方法的返回结果直接写入 HTTP response body 中
    一般在异步获取数据时使用,在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @responsebody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。比如异步获取 json 数据,加上 @responsebody 后,会直接返回 json 数据。

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

    @ComponentScan:
    组件扫描。个人理解相当于,如果扫描到有 @Component @Controller @Service 等这些注解的类,则把这些类注册为 bean。

    @Configuration:
    指出该类是 Bean 配置的信息源,相当于 XML 中的,一般加在主类上。

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

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

    @AutoWired:
    byType 方式。把配置好的 Bean 拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
    当加上(required=false)时,就算找不到 bean 也不报错。

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

    @Resource(name=“name”,type=“type”):
    没有括号内内容的话,默认 byName。与 @Autowired 干类似的事。

    @RequestMapping:

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

    @RequestParam:
    用在方法的参数前面。
    @RequestParam String a =request.getParameter(“a”)。

    @PathVariable:

    路径变量。参数与大括号里的名字一样要相同。

    RequestMapping("user/get/mac/{macAddress}") public String getByMacAddress(@PathVariable String macAddress){//do something;
    }
    
    

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

    @Configuration
    @Profile(“prod”) public class ProductionConfiguration { // …
    }

    @ConfigurationProperties
    Spring Boot 将尝试校验外部的配置,默认使用 JSR-303(如果在 classpath 路径中)。
    你可以轻松的为你的 @ConfigurationProperties 类添加 JSR-303 javax.validation 约束注解:

    @Component
    @ConfigurationProperties(prefix="connection") public class ConnectionSettings {
    @NotNull private InetAddress remoteAddress; // ... getters and setters
    }
    
    
    

    全局异常处理

    @ControllerAdvice:
    包含 @Component。可以被扫描到。
    统一处理异常。

    @ExceptionHandler(Exception.class):
    用在方法上面表示遇到这个异常就执行以下方法。


    展开全文
  • Springboot系列:Springboot常用注解以及使用!

    千次阅读 多人点赞 2019-09-11 12:41:07
    Springboot系列:Springboot常用注解以及使用! 前言 今天博主将为大家分享:Springboot系列:Springboot常用注解以及使用!不喜勿喷,如有异议欢迎讨论! 常规方式 注解 使用位置 作用 @Controller 类名...

    Springboot系列:Springboot常用注解以及使用!


    前言

    今天博主将为大家分享:Springboot系列:Springboot常用注解以及使用!不喜勿喷,如有异议欢迎讨论!


    常规方式

    注解使用位置作用
    @Controller类名上方声明此类是一个SpringMVC Controller 对象
    @RequestMapping类或方法上用在类上,表示所有响应请求的方法都是以该地址作为父路径
    @ResponseBody方法上将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式(Json/xml)后,写入到Response对象的body数据区。
    @RestController类名上可代替@ResponseBody 和 @Controller合在一起的作用。但不能返回Jsp和HTML页面了
    @RequestBody方法参数前常用来处理Content-Type: application/json, application/xml等,意味着HTTP消息是JSON,需转化为指定类型参数
    @Service类名上声明是一个业务处理类(实现类非接口类)
    @Repository类名上声明是一个数据库或其他NOSql访问类(实现类非接口类)
    @Component类名上声明此类是Spring管理类,常用在无法用@Service、@Repository描述的Spring管理类上,相当于通用的注解
    @Configuration类名上声明此类是一个配置类,常与@Bean配合使用
    @Bean方法名上声明该方法返回结果是一个Spring容器管理的Bean,包含@PostConstruct和@PreDestory
    @Qualifier类名或属性上为Bean指定名称,随后再通过名字引用Bean
    @Autowired属性或构造函数参数上按byType自动注入
    @Resource类名上默认按 byName自动注入
    @Value属性上用于获取配置文件中的值
    @PathVariable方法参数前将URL获取参数,映射到方法参数上

    注解用法示例

    1.@Controller
    用在类名

    @Controller
    @RequestMapping("/api/v1/user")
    public class UserController {}
    

    2.@RequestMapping 和请求报文是做对应

    a:value,指定请求的地址   

    b:method 请求方法类型 这个不写的话,自适应:get或者post  
    \ 
    c:consumes请求的提交内容类型   

    d:produces 指定返回的内容类型 仅当request请求头中的(Accept)类型中包含该指定类型才返回
      
    e: params 指定request中必须包含某些参数值   

    f:headers 指定request中必须包含指定的header值

    用在类名

    @Controller
    @RequestMapping("/api/v1/user")
    public class UserController {}
    

    用在方法名

    @RequestMapping(value = "getuser", method = RequestMethod.POST)
    public List<User> selectAll() {
        return userService.selectAll();
    }
    

    注解属性:
    ①. value, method;

    • value:指定请求的实际地址,指定的地址可以是URI Template 模式;

    • method:指定请求的method类型, GET、POST、PUT、DELETE等;

    ②.consumes,produces

    • consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

    • produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

    ③. params,headers

    • params: 指定request中必须包含某些参数值是,才让该方法处理。

    • headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

    3.@ResponseBody
    用在方法名上

    将返回对象输出到客户端,如果是字符串,直接输出;如果不是,则默认用Jackson序列化成Json字符串输出。

    @ResponseBody
    public User addUser(@RequestBody User user) {}
    

    该注解将返回类型转换为指定格式,格式由程序控制,格式包括json、text、xml和其他。若转为Json,需要依赖Json解析Jar包。

    4. @RestController

    用于返回json、text、xml和其他等格式的数据,但不能返回Jsp和HTML页面。

    @RestController
    @RequestMapping("/api/v1/user")
    public class UserController {}
    

    5.@RequestBody

    通过使用HandlerAdapter,配置的HttpMessageConverters来将请求内容,转为指定的对象。Spring boot
    默认用Jackson来处理反序列化工作。

    下面示例是将请求Json参数,利用@RequestBody直接注入到EnterpriseEntity中,

    @RequestMapping(value = "/enterprise/update", method = RequestMethod.PUT)
        public void updateEnterpriseInfo(@RequestBody EnterpriseEntity enterprise) {
    }
    

    6.@Service

       // 用在ServiceImpl实现类上,声明一个业务逻辑处理类。
        
        @Service("userService")
        public class UserServiceImpl implements UserService {}
    

    7.@Repository

    用在daoImpl实现类上,声明一个数据库访问类

    @Repository
    public class IocDao implements IIocDao{
        public void add(){
        }
    }
    

    8.@Component

    如用在Mybatis的Mapper类上

    @Component
    @Mapper
    public interface UserMapper {
        int deleteByPrimaryKey(Long userId);
    }
    

    9.@Configuration

    @Configuration
    @EnableCaching
    public class RedisConfig {
        @Bean
        public CacheManager cacheManager(RedisTemplate redisTemplate) {
    
            RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
            return cacheManager;
        }
    }
    

    10.@Bean

    @Bean(name = "kafkaContainer")
    public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<String, String>> kafkaListenerContainerFactory() {
        ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
        factory.setConsumerFactory(consumerFactory());
        factory.setConcurrency(1);
        factory.getContainerProperties().setPollTimeout(5000);
        return factory;
    }
    

    其中:

    @PostConstruct Bean容器初始化后调用

    @PreDestroy Bean容器销毁前调用

    通过这连个注解,可以再Spring Bean创建和销毁前,调用我们自定义的方法。这样Spring Bean 整个生命周期,创建前、创建后、销毁前都可以指定调用的方法了,很方便。

    public class CustomerService
    {
    String message;

        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        @PostConstruct
        public void initIt() throws Exception {
            System.out.println("Init method after properties are set : " + message);
        }
    
        @PreDestroy
        public void cleanUp() throws Exception {
            System.out.println("Spring Container is destroy! Customer clean up");
        }
    
    }
    

    11.@Qualifier

    先指定一个名字:@Qualifier(“primaryDataSource”)

    @Autowired
    @Qualifier("primaryDataSource")
    private DataSource primaryDataSource;
    

    再通过名字:@Qualifier(“primaryDataSource”)引用

    @Bean(name = "primaryDataSource", initMethod = "init")
    @Qualifier("primaryDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.primary")
    @Primary
    public DataSource primaryDataSource() {
        DataSource datasource = DruidDataSourceBuilder.create().build();
            return datasource;
    }
    

    12.@Autowired

    @Autowired
    @Qualifier(value = "entityManagerFactoryPrimary")
    LocalContainerEntityManagerFactoryBean entityManager;
    

    13.@Resource

    配置类:

    @Component("jpushConfig")
    public class JpushConfig {
        @Value("${jpush.appKey}")
        private String appkey;
        @Value("${jpush.masterSecret}")
        private String masterSecret;
        @Value("${jpush.liveTime}")
        private String liveTime;
    
        public String getAppkey() {
    
            return appkey;
        }
    
        public String getMasterSecret() {
    
            return masterSecret;
        }
    
        public void setLiveTime(String liveTime) {
    
            this.liveTime = liveTime;
        }
    }
    

    使用配置:

    @Resource
    JpushConfig jpushConfig;
    

    14.@Value

    properities属性文件中创建键值对

    spring.kafka.consumer.topic=test-topic
    

    在Java中将properities属性文件中的值,注入到属性中。

    @Value("${spring.kafka.consumer.topic}")
    private String topic;
    

    15.@PathVariable

    @RequestMapping("/api/{type}")
    public String getUser(@PathVariable int type) {}
    

    {type}中的type需要跟参数名统一,若不统一,可用(value = “type”)指定:

    @RequestMapping("/api/{type}")
    public String getUser(@PathVariable(value = "type") int myType) {}
    

    16.@Scope:注解在类上,描述spring容器如何创建Bean实例。

    (1)singleton: 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例

    (2)prototype:表示每次获得bean都会生成一个新的对象

    (3)request:表示在一次http请求内有效(只适用于web应用)

    (4)session:表示在一个用户会话内有效(只适用于web应用)

    (5)globalSession:表示在全局会话内有效(只适用于web应用)

    17.@ConfigurationProperties

    赋值,将注解转换成对象。给对象赋值。车险项目:HttpClientSetting类

    @Profile:注解在方法类上在不同情况下选择实例化不同的Bean特定环境下生效!!!!!!!!!!!!!!!!!

    18.@SpringBootApplication

    @SpringBootApplication=@ComponentScan+@Configuration+@EnableAutoConfiguration:约定优于配置

    @EnableAutoConfiguration启用 Spring 应用程序上下文的自动配置,试图猜测和配置您可能需要的bean。自动配置类通常采用基于你的classpath 和已经定义的 beans 对象进行应用。被@EnableAutoConfiguration 注解的类所在的包有特定的意义,并且作为默认配置使用。通常推荐将

    @EnableAutoConfiguration 配置在 root 包下,这样所有的子包、类都可以被查找到。

    19.@ComponentScan

    注解在类上,扫描标注了@Controller等注解的类,注册为bean 。@ComponentScan 为
    @Configuration注解的类配置组件扫描指令。@ComponentScan 注解会自动扫描指定包下的全部标有 @Component注解的类,并注册成bean,当然包括 @Component下的子注解@Service、@Repository、@Controller。

    20.@RequestParam(value=“username”,required=false)

    使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值

    使用@PathVariable时,URL是这样的:http://host:port/path/参数值

    不写的时候也可以获取到参数值,但是必须名称对应。参数可以省略不写

    21.@suppresswarnings 抑制警告

    @Modifying 如果是增,改,删加上此注解

    1:方法的返回值应该是int,表示更新语句所影响的行数。

    2:在调用的地方必须加事务,没有事务不能正常执行。@Transactional 事务注解

    @Query 自定义查询语句 JPQL


    JPA注解

    @Entity:

    @Table(name=“”):注解在类上表明这是一个实体类。一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略

    @Column:通过@Column注解设置,包含的设置如下

    name:数据库表字段名
    unique:是否唯一
    nullable:是否可以为空

    • Length:长度

    inserttable:是否可以插入

    updateable:是否可以更新

    columnDefinition: 定义建表时创建此列的DDL

    secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字。

    @Column(name = “user_code”, nullable = false, length=32)//设置属性userCode对应的字段为user_code,长度为32,非空 private String
    userCode; @Column(name = “user_wages”, nullable = true, precision=12,scale=2)//设置属性wages对应的字段为user_wages,12位数字可保留两位小数,可以为空
    private double wages;

    @Id:表示该属性为主键。

    @Temporal(TemporalType.DATE)//设置为时间类型 private Date joinDate;

    @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic。@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式

    @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。

    @JoinColumn(name=”loginId”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。

    @OneToOne、@OneToMany、@ManyToOne:对应hibernate配置文件中的一对一,一对多,多对一。

    @GeneratedValue 用于标注主键的生成策略,通过 strategy 属性指定。默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer 对应 identity,MySQL 对应 auto increment。 在 javax.persistence.GenerationType 中定义了以下几种可供选择的策略:

    IDENTITY:采用数据库 ID自增长的方式来自增主键字段,Oracle 不支持这种方式;

    AUTO: JPA自动选择合适的策略,是默认选项;

    SEQUENCE:通过序列产生主键,通过 @SequenceGenerator 注解指定序列名,MySql 不支持这种方式

    TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。


    到这里:Springboot系列:Springboot常用注解以及使用!分享完毕了,快去试试吧!


    最后

    • 更多参考精彩博文请看这里:《陈永佳的博客》

    • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!


    展开全文
  • SpringBoot常用注解详解

    2019-07-06 15:42:24
    springboot常用注解有哪些 清浅2019-04-19 10:26:40 原创3851 springboot常用注解有:@Repository用于标注数据访问组件,@Service用于标注业务层组件,@Component用于泛指组件,@ComponentScan用于组件扫描等等 ...
  • Spring SpringMVC SpringBoot 常用注解说明

    千次阅读 多人点赞 2019-03-31 19:42:08
    Spring SpringMVC SpringBoot 常用注解说明Spring注解与xml配置的区别不使用注解的案例@Autowired@Qualifier@Resource@Service使用注解来构造IoC容器@Component@Controller@Service@ RepositorySpring常用注解汇总...
  • SpringBoot常用注解及其作用

    千次阅读 2020-11-21 16:47:03
    springboot中的常用注解有: 1、@SpringBootApplication 这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。实际上这个...
  • 0.前言可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景。对于每一个注解我都说了具体用法,掌握搞懂,使用 Spri...
  • 注解描述的类为springboot项目的启动入口类 记住: 1、springboot项目的启动入口类只能有一个 2、springboot项目的启动入口类需要使用SpringBootApplication注解进行描述 这个类在启动时会做那些事情呢? 1、加载...
  • 1.Spring注解 注解分为两类 1.注册Bean注解,将实例化的对象转化成Bean,放入IOC容器中等待调用 2.使用Bean注解,将在XML文件中配置好的Bean拿来用完成属性方法的组装 1.1注册Bean注解 @component 1、把普通pojo实例...
  • 导语: 相信现在很多新项目都会首选springboot作为基础进行开发,主要...springboot提供了大量的注解,使得代码更加简洁高效,就让我们来简单看一下springboot提供的相关注解(其实很一部分也是继承于spring的) ...
  • 1、微服务简述   微服务特点: ...说明:@EnableAutoConfiguration把所有符合条件(在META-INF/...Springboot常用注解大全: https://blog.csdn.net/yitian_66/article/details/80866571      
  • SpringBoot常用注解使用和实例

    千次阅读 2019-07-19 17:00:02
    Spring boot中常用注解,及其在项目开发中实际使用位置和示例 二.注解用法示例 1.@Controller 1.1 用在类名 @Controller @RequestMapping("/api/v1/user") public class UserController {} 2.@RequestMapping ...
  • Springboot常用注解大全

    万次阅读 多人点赞 2018-06-30 14:42:45
    springboot注解:@Service: 注解在类上,表示这是一个业务层bean@Controller:注解在类上,表示这是一个控制层bean@Repository: 注解在类上,表示这是一个数据访问层bean@Component: 注解在类上,表示通用bean ,...
  • spring核心注解 @Required 此注解用于bean的setter方法上。表示此属性是必须的,必须在配置阶段注入,否则会抛出BeanInitializationExcepion。 @Autowired 此注解用于bean的field、setter方法以及构造方法上,显式...
  • springboot常用注解使用详解

    千次阅读 2018-04-10 21:22:34
    对于springboot而言,需要掌握平常使用的注解案例详解如下:@Controller//标明这是一个SpringMVC的Controller控制器;@SpringBootApplication//Spring Boot项目的核心注解,主要目的是开启自动配置。@Configuration/...
  • @SpringbootApplication:启动类 @Controller、@RestController(@ResponseBody+@Controller组合):控制层 @ResponseBody:讲返回的数据以json格式发送 @RequestBody:,主要用实体类进行接收,前端发来json数据...
  • SpringBoot常用注解集合

    2021-11-01 14:19:34
    这里我们不会将springboot全部的注解都一个一个分析一遍,因为现在普遍都是前后端分离开发,所以之前用在很多的模板视图解析上的注解现在已经不怎么用到了这里就没再提。有需要的同学可以去看我的其他关于框架的专栏...
  • @RestController和@Controller的区别 ...如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Ret
  • 近100个Spring/SpringBoot常用注解汇总!

    千次阅读 2020-04-28 11:45:00
    作者 | Guide来源 | JavaGuide(微信公众号)毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景。对于每...
  • 常用写法: @CrossOrigin中的2个参数: origins : 允许可访问的域列表 maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。 @CrossOrigin(origins = "http://域名", maxAge = 3600) 如何解决了您的问题,还...
  • 一、启动注解 @SpringBootApplication @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters...
  • 一、SpringBoot常用注解 二、SpringBoot自动配置机制 一、SpringBoot常用注解   在上一篇文章中https://blog.csdn.net/zhichao_qzc/article/details/80642111引用了官方文档的入门例子,这个例子中只是...
  • SpringBoot常用注解有哪些 一注解(annotations)列表? @Configuration?等同于spring的XML配置文件使用Java代码可以检查类型安全 @EnableAutoConfiguration?自动配置 @ComponentScan?组件扫描可自动发现和装配一些Bean...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,474
精华内容 15,789
关键字:

springboot常用注解

spring 订阅