SpringBoot 常用注解方式

1.@Column
数据库表字段与result不一致时用@Column注解,例如:

@Column(name = "f_schema")
private String schema;

2.@Param
传入参数与数据库表字段不一致:

List<Flower> selByNamePro(@Param("name")String name,@Param("pro")String production);
	
		<select id="selByNamePro" resultType="flower">
  			select * from flower where name=#{name} and production=#{pro}
  		</select>

3.@RequestBody
如果是 json 格式的数据,我们要传入的参数是一个对象,那就必须使用@RequestBody
比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。@RequestBody接受的是一个json格式的字符串,一定是一个字符串。

@RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
@ResponseBody
public JSONObject class Test(@RequestBody Test test) {
    String name = test.getName();
    // 将 name 回显
    Map<String, Object> map = new HashMap<>();
    map.put("name", name);
    JSONObject obj = JSONObject.fromObject(map);
    return obj;
}

4.@ResponseBody
@ResponseBody的作用其实是将java对象转为json格式的数据。

后台 Controller类中对应的方法:
@RequestMapping("/login.do")
@ResponseBody
public Object login(String name, String password, HttpSession session) {
	user = userService.checkLogin(name, password);
	session.setAttribute("user", user);
	return new JsonResult(user);
}
 
@RequestBody是作用在形参列表上,用于将前台发送过来固定格式的数据【xml格式 或者 json等】封装为对应的 JavaBean 对象,
封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。
如上面的登录后台代码可以改为:
@RequestMapping("/login.do")
@ResponseBody
public Object login(@RequestBody User loginUuser, HttpSession session) {
	user = userService.checkLogin(loginUser);
	session.setAttribute("user", user);
	return new JsonResult(user);
}

5.@RestController
@RestController = @Controller+@ResponseBody

  • @Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。当然也有语义化的作用,即代表该类是充当Controller的作用
  • @ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端,本人尝试了一下,如果返回的是String类型,则仍然是String。如果返回的是String类型,则仍然是String。

6.@SpringBootApplication
@SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan
localhost:8080

  • @Configuration:提到@Configuration就要提到他的搭档@Bean。使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。
<beans> 
    <bean id = "car" class="com.test.Car"> 
        <property name="wheel" ref = "wheel"></property> 
    </bean> 
    <bean id = "wheel" class="com.test.Wheel"></bean> 
</beans> 

相当于:

@Configuration 
public class Conf { 
    @Bean 
    public Car car() { 
        Car car = new Car(); 
        car.setWheel(wheel()); 
        return car; 
    } 
    @Bean  
    public Wheel wheel() { 
        return new Wheel(); 
    } 
}

@Configuration的注解类标识这个类可以使用Spring IoC容器作为bean定义的来源。@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。

  • @EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。

  • @ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。

7.@ApiOperation
@ApiOperation和@ApiParam为添加的API相关注解,个参数说明如下:

  • @ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”);其他参数可参考源码;
  • @ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”)

8.@ApiImplicitParam
作用在方法上,表示单独的请求参数
参数:

  1. name :参数名。
  2. value : 参数的具体意义,作用。
  3. required : 参数是否必填。
  4. dataType :参数的数据类型。
  5. paramType :查询参数类型。
    列如:
    @ApiImplicitParams({ @ApiImplicitParam(paramType = “body”, dataType = “MessageParam”, name = “param”, value = “信息参数”, required = true) })

9.@Data
@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;
要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。

  • 在maven中添加依赖
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    <scope>provided</scope>
</dependency>
  • 在编译器中添加插件
    这里以IDEA为例,在setting的plugin里搜索lombok plugin,安装插件。

10.@Transactional
使用@Transactional注解,抛出异常之后,事务会自动回滚,数据不会插入到数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值