Springboot注解的优势:
采用纯java代码,不在需要配置繁杂的xml文件(SpringMVC需要将一些bean相关配置写在xml中, Springboot不需要配置xml, 全部用注解实现自动配置)
Main方法可用注解
必须:
@SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。
可选:
其他:
@EnableAutoConfiguration:SpringBoot自动配置(auto-configuration):尝试根据你添加的jar依赖自动配置你的Spring应用。例如,如果你的classpath下存在HSQLDB,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库”。你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的排除属性来禁用它们。
@ComponentScan:表示将该类自动发现扫描组件。个人理解相当于,如果扫描到有@Component、@Controller、@Service等这些注解的类,并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。如果没有配置的话,Spring Boot会扫描启动类所在包下以及子包下的使用了@Service,@Repository等注解的类。
@Configuration:相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。
Controller层可用注解
类注解:
必须:
@RestController:用于标注控制层组件(所有Controller类都需要标注), 注解后的类, 所有方法返回结果是return中的实际内容
return “user/hello”; 页面显示 user/hello 字符串
可选:
@Controller: 同样可用于标注控制层组件, 注解后的类, 会将所有方法的return内容按URL格式解析到具体页面,显示页面的内容
return “user/hello”; 页面显示user下面hello页面里的内容
方法注解:
类和方法的URL地址定义:
必须:
@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。
既可以标注在方法上, 也可以标注在类上, 类的URL就会是所有方法URL的前置地址@RequestMapping(value ="/updateAreaName",method=RequestMethod.PUT)
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。该注解有六个属性:
params:指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
value:指定请求的实际地址,指定的地址可以是URI Template 模式
method:指定请求的method类型, GET、POST、PUT、DELETE等
consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
@PostMapping: 功能同@RequestMapping, 只是请求方法不再参数中在注解名字中. 其他@GetMapping,@PutMapping,@DeleteMapping("/updateAreaName")
方法(接口)接收和返回的参数设置:
- 接收普通数据类型或者字符串:
@RequestParam: 接口需要用param格式设置参数
请求URL: http://localhost:8092/setstring?key=s10&value=123
方法: public void setwithtime(@RequestParam(value=“key”) String key,@RequestParam(value=“value”) Integer value)
@PathVariable: 需要将参数以URL格式附加在地址中
请求URL: http://localhost:8092/deletestudent/s10
public boolean deletestudent(@PathVariable(“key”) String key)
- 接收对象:
@RequestBody: 主要作用是接口接收的json格式自动映射到对应的实体上,转化为对象,以方便后续操作(json写在接口请求body中)
public void setstudent(@RequestBody Student student){
redisTemplate.opsForValue()