Spring Boot 入门(注解的使用)
注解的使用
@Component & @ConfigurationProperties**
pojo对象,需要@Component定义Spring管理Bean,@ConfigurationProperties指定前缀内容。
@Component注解相当于:@Service,@Controller,@Repository,并下面类纳入进spring容器中管理。这样才能被下一层@Autowired注入该对象。
@Component
@ConfigurationProperties(prefix = "girl")
public class GirlProperties {
private String size;
private Integer age;
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
...
}
运行@SpringBootApplication,即可访问Controller的内容
@RestController
public class HelloController {
@Autowired
private GirlProperties girlProperties;
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String say(){
return girlProperties.getSize();
}
}
@RestController
@RestController = @ResponseBody + @Controller
@RequestMapping
-
@RequestMapping可以指定多个value: @RequestMapping(value={"/say","/hi"}) 。
-
@RequestMapping的Get请求获取参数的方式:
方式一PathVariable:访问地址中间参数传输:
@RequestMapping(value="/{id}/say",method = RequestMethod.GET)
public String say(@PathVariable("id") Integer id){
return "Hello World:"+id;
}
url访问地址可以将id中间位置:http://localhost:8080/hello/10086/say
方式二RequestParam:访问地址后面传值:
@RequestMapping(value="/say",method = RequestMethod.GET)
public String say(@RequestParam("id") Integer id){
return "Hello World:"+id;
}
url访问方式:http://localhost:8080/hello/say?id=10086
添加默认值:(@RequestParam(value = “id”, required = false, defaultValue = “0”) Integer id) ,如何不传id,它就会默认为0。
@RequestMapping(value="/say",method = RequestMethod.GET)也可以写成GetMapping(value="/say")的方式。
@Transactional
当一个Service的方法里有两条sql插入操作,在方法上面添加@Transactional注解,即说明其为同个事务,保证其同时执行成功或者同时执行
只有在Innodb引擎下事务才能工作。所以还需要在数据库中执行 ALTER TABLE girl ENGINE=innodb命令。
@Transactional
public void insertTwo(){
Girl girlA = new Girl();
girlA.setSize("A");
girlA.setAge(18);
girlRepository.save(girlA);
Girl girlB = new Girl();
girlB.setSize("B");
girlB.setAge(20);
girlRepository.save(girlB);
}