本质就是将我们以前在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 druid1.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()); }
结果: 成功
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)