栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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());
    }

结果: 成功

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/603568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号