springboot面试题

Springboot核心注解是那几个?由那几个注解组成

启动类Application 上面的注解 @SpringbootApplication  由一下三个注解组合

@SpringbootConfiguration: 组合了Configuration注解,实现配置文件的功能
@EnableSAutoConfiguration: 打开自动配置功能。
@ComponentScan: Spring组件扫描

SpringBoot Starter工作原理

Springboot就是各种Starter组合起来,自己也可以开发Starter

@SprinbootApplication注解会自动去maven中读取每个starter中的配置文件(), 该文件配置了所有需要被Spring容器创建的bean  并注入springContext中
@component 注解功能

Spring Boot有哪几种读取配置的方式?

@PropertySource @value @Environment @ConfigurationProperties 注解来绑定变量

Springboot自动配置原理是什么?

@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日志中  <font color = red>其中log4j前段时间爆出严重安全事故 请注意版本</font>
@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
}
```

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村长在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值