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

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

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的与数据库整合的场景依赖

        
            org.springframework.boot
            spring-boot-starter-data-jdbc
        

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

        
            mysql
            mysql-connector-java
        

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为例

        
            com.alibaba
            druid
            1.1.10
        

按照以前的思路,我们应该去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());
    }

结果: 成功

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5609715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存