SpringBoot

介绍:SpringBoot是Spring的成员,核心是IOC。 


1.JavaConfig

        使用Java作为xml配置文件的替代,是配置文件spring容器的纯Java方式,在Java类中可以常见对象,并加入到spring容器中。

注解:

@Configuration

放在类上,表示这个类作为配置文件使用。

@Bean

声明对象,把对象注入到容器中。

@ImportResource

作用导入其他的xml文件,相当于<impot   resources="配置文件"/>

@PropertyResource

读取 properties 属性配置文件。使用属性配置文件可以实现外部化配置,在代码之外提供数据。

步骤:

        1.在resources目录下,创建properties文件,使用k=v格式提供数据。

        2.在PropertyResource 指定properties文件的位置。

        3.使用@Value(value="${key}")读取属性


2.常用注解

@SpringBootApplication

复合注解:由@SpringBootConfiguration  @EnableAutoConfiguration   @ComponentScan

@SpringBootConfiguration

使用此注解的类,可以作为配置文件使用

@SpringBootConfiguration    
@Configuration
public @interface SpringBootConfiguration {
    @AliasFor(annotation = Configuration.class)
    boolean proxyBeanMethods() default true;
}

@EnableAutoConfiguration

启动自动配置,把Java对象配置好,注入到Spring容器中

@ComponentScan

找到注解,根据注解的功能创建对象,给属性赋值等。

默认扫描,注解所在的类所在的包及其子包。

@ConfigurationProperties

把配置文件的数据映射为Java对象。

属性prefix:配置文件中某些key的开头内容


3.拦截器,过滤器        

3.1 创建类实现SpringMVC框架的HandlerInterceptor接口,需要在配置文件中声明拦截器,并在SpringBoot中注册拦截器

public interface HandlerInterceptor {
    default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        return true;
    }

    default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
    }

    default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
    }
}
<mvc:interceptors>
	<mvc:interceptor>
    	<mvc:path="url" />
        <bean class="拦截器类全限定名称"/>
    </mvc:interceptor>
</mvc:interceptors>
@Configuration
public class MyAppConfig implements WebMvcConfigurer {

    //添加拦截器对象, 注入到容器中
    @Override
    public void addInterceptors(InterceptorRegistry registry) {

        //创建拦截器对象
        HandlerInterceptor interceptor = new LoginInterceptor();

        //指定拦截的请求uri地址
        String path []= {"/user/**"};
        //指定不拦截的地址
        String excludePath  [] = {"/user/login"};
        registry.addInterceptor(interceptor)
                .addPathPatterns(path)
                .excludePathPatterns(excludePath);

    }
}

3.2  Filter是Servlet规范中的过滤器,可以处理请求, 对请求的参数, 属性进行调整。 常常在过滤器中处理字符编码

// 自定义过滤器
public class MyFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("执行了MyFilter,doFilter ");
        filterChain.doFilter(servletRequest,servletResponse);
    }
}
//注册Filter

@Configuration
public class WebApplicationConfig {

    @Bean
    public FilterRegistrationBean filterRegistrationBean(){
        FilterRegistrationBean bean  = new FilterRegistrationBean();
        bean.setFilter( new MyFilter());
        bean.addUrlPatterns("/user/*");
        return bean;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值