SpringBoot整合原生Servlet,Filter,Listener&数据源

1.整合三大原生组件

本质就是将我们以前在web.xml中配置的组件信息转移到配置类中,这里通过RegisterBean来实现。

1.注册Servlet组件:

首先创建一个Servlet

public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

2.准备一个配置类

@Configuration
public class BaseConfig  {

}

3.在配置类中注册我们自定义的Servlet

    @Bean //将返回值加入到IoC容器
    ServletRegistrationBean servletRegistration(){
        MyServlet myServlet = new MyServlet();

        return new ServletRegistrationBean(myServlet,"/myServlet"); //将servlet注册进对应Bean中,并指定它的urlPattern
    }

我们也可以通过ServletRegistrationBean提供的方法来对Servlet进行一些初始化参数的设置

配置其他两大组件的步骤也和Servlet相似。

 1.创建自定义的Filter

public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void destroy() {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        filterChain.doFilter(servletRequest,servletResponse);
    }
}

2.注册到容器中

    @Bean
    FilterRegistrationBean filterRegistrationBean(){
        return new FilterRegistrationBean(new MyFilter(),new ServletRegistrationBean<>());
    }
}

此时Filter过滤的内容与Servlet中的urlPattern一致。

listener类似

2.配置数据源

首先引入SpringBoot的与数据库整合的场景依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>

然后引入数据库的依赖这里以mysql为例

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

SpringBoot进行版本仲裁,我们可以省略version,若你想要指定version,也可以加上。

SpringBoot中默认使用hikari数据源,当我们没有配置自己的数据源时,它会默认使用hikari数据源。

在application.properties中进行配置

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver

自己配置数据源的情况:

以druid为例

引入依赖,druid有与SpringBoot整合的依赖,这里以原生druid为例

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>

按照以前的思路,我们应该去xml文件中配置DataSource。现在我们应该把以前在xml中写的东西转移到配置类中。

1.准备配置类

2.进行注册

@Configuration

public class DataSourceConfig {


    @Bean
    @ConfigurationProperties("spring.datasource")
   public DataSource druidDataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        return dataSource;
    }

}

这里通过绑定配置Properties的方式来指定数据库的相关属性。当然也可以通过set方法来设置

测试一下druid有没有成功注入

 @Autowired
    DataSource dataSource;
    @Test
    void testDruid()
    {
        System.out.println(dataSource.getClass());
    }

结果: 成功

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值