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());
}
结果: 成功