启动类Application 上面的注解 @SpringbootApplication 由一下三个注解组合
@SpringbootConfiguration: 组合了Configuration注解,实现配置文件的功能
@EnableSAutoConfiguration: 打开自动配置功能。
@ComponentScan: Spring组件扫描
Springboot就是各种Starter组合起来,自己也可以开发Starter
@SprinbootApplication注解会自动去maven中读取每个starter中的配置文件(), 该文件配置了所有需要被Spring容器创建的bean 并注入springContext中
@component 注解功能
@PropertySource @value @Environment @ConfigurationProperties 注解来绑定变量
@EnableAutoConfiguration注解 自动配置功能 具体过程如下:
从配置文件/Meta/Spring.factories 加载可能用到的自动配置类
去重,并将exclude和excludeName属性携带的类排除
将满足条件@Conditional 的自动配置类返回
SpringBoot实现全局异常处理?
通过使用ControllerAdvice类处理异常, 来处理@Controller类抛出的所有异常。
@component 注解: 把普通的pojo实例化到spring容器中 当我们的类不知道该归类到哪一类时可以使用@component来注解 新建的类不归属(@Controller @Service)中的任何一个
@RunWith(SpringRunner.class): Test测试类要使用的类实例化到spring容器中,自动注入才生效 不然SpringbootTest测试类报错空指针异常
**lombok插件注解**
lombok插件: 简化代码提高开发效率 缺点:不支持多种参数构造器重载 降低代码阅读性
@Data : 提供类的get set equals hashcode canEqual toString方法
@AllArgsConstructor : 提供类的全参构造
@NOArgsConstructor: 提供类的无参构造
@EqualsAndHashCode: 提供equals和hashCode方法
@Log4j/@Slf4j : 提供日志打印到springboot日志中 其中log4j前段时间爆出严重安全事故 请注意版本
@Setter : 标注在属性上 提供set方法
@Getter: 标注在属性上 提供get方法
**@modelAttribute:将方法入参对象添加到模型中,**
```
@RequestMapping(value="/handle")
public String handle(@ModelAtttribute("user") User user){
user.setUserId("1000")
return "success";
}
```
@requestMapping是映射的url是handle 即/handle
这里有模型数据,User类里面有getter和setter方法
函数的返回类型是String,返回的视图名是success,如果视图是jsp则应该是success.jsp
在spring中将User类以参数的形式传入到handle的方法,在方法体里就可以设置user的对象属性。
**@PathVariable 用来获取请求url中动态参数**
```
@controller
public class TestController{
@RequestMapping(value="/user/{userId}/role/{roleId}",method=RequestMethod.GET)
public String getlogin(@PathVariable(userId) String userid,@PathVariable(roleId) String roleId){
System.out.println("动态获取的用户id"+ userId);
System.out.println("动态获取规则id"+ roleId);
return "hello" //放回hello的视图页面,例如hello.jsp
}
```