当前位置:   article > 正文

Spring的纯注解配置

Spring的纯注解配置

1.JDBC配置:

jdbc配置:

  1. <context:property-placeholder location="classpath:db.properties">
  2. </context:property-placeholder>
  3. <!--数据源-->
  4. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
  5. destroy-method="close">
  6. <property name="url" value="${jdbc.url}" />
  7. <property name="username" value="${jdbc.username}" />
  8. <property name="password" value="${jdbc.password}" />
  9. <property name="driverClassName" value="${jdbc.driver}" />
  10. <property name="maxActive" value="10" />
  11. <property name="minIdle" value="5" />
  12. </bean>

jdbc的纯注解配置:

JdbcConfig:

  1. import com.alibaba.druid.pool.DruidDataSource;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.PropertySource;
  5. import javax.sql.DataSource;
  6. @PropertySource("classpath:db.properties")
  7. public class JdbcConfig {
  8. @Value("${jdbc.driver}")
  9. private String driver;
  10. @Value("${jdbc.url}")
  11. private String url;
  12. @Value("${jdbc.username}")
  13. private String userName;
  14. @Value("${jdbc.password}")
  15. private String password;
  16. @Bean("dataSource")
  17. public DataSource getDatasource() {
  18. DruidDataSource ds = new DruidDataSource();
  19. ds.setDriverClassName(driver);
  20. ds.setUrl(url);
  21. ds.setUsername(userName);
  22. ds.setPassword(password);
  23. return ds;
  24. }
  25. }

2.mybatis配置

mybatis配置:

  1. <!--sqlSession工厂-->
  2. <bean id="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
  3. <property name="dataSource" ref="dataSource"></property>
  4. <property name="typeAliasesPackage" value="com.by.pojo"></property>
  5. </bean>
  6. <!--配置MapperScan扫描mapper接口,并把生成的代理类交给spring去管理-->
  7. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  8. <property name="basePackage" value="com.by.mapper"></property>
  9. <property name="sqlSessionFactoryBeanName" value="sessionFactoryBean"></property>
  10. </bean>

mybatis的纯注解配置:

MybatisConfig:

  1. import org.mybatis.spring.SqlSessionFactoryBean;
  2. import org.mybatis.spring.mapper.MapperScannerConfigurer;
  3. import org.springframework.context.annotation.Bean;
  4. import javax.sql.DataSource;
  5. public class MyBatisConfig {
  6. @Bean
  7. public SqlSessionFactoryBean getSqlSessionFactoryBean(
  8. DataSource dataSource){
  9. SqlSessionFactoryBean ssfb=new SqlSessionFactoryBean();
  10. ssfb.setDataSource(dataSource);
  11. ssfb.setTypeAliasesPackage("com.by.pojo");
  12. return ssfb;
  13. }
  14. @Bean
  15. public MapperScannerConfigurer getMapperScannerConfigurer(){
  16. MapperScannerConfigurer msc=new MapperScannerConfigurer();
  17. msc.setBasePackage("com.by.mapper");
  18. return msc;
  19. }
  20. }

3.transactional配置

transactional配置:

  1. <bean id="transactionManager"
  2. class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  3. <property name="dataSource" ref="dataSource"></property>
  4. </bean>
  5. <!-- 开启spring对注解事务的支持 -->
  6. <tx:annotation-driven transaction-manager="transactionManager"/>

transactional的纯注解配置:

TxConfig:

  1. import org.springframework.context.annotation.Bean;
  2. import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  3. import org.springframework.transaction.PlatformTransactionManager;
  4. import javax.sql.DataSource;
  5. public class TxConfig {
  6. @Bean
  7. public PlatformTransactionManager transactionManager(DataSource dataSource){
  8. DataSourceTransactionManager ds = new DataSourceTransactionManager();
  9. ds.setDataSource(dataSource);
  10. return ds;
  11. }
  12. }

4.service配置

service配置:

  1. <!--扫描service-->
  2. <context:component-scan base-package="com.by.service"></context:component-scan>

service的纯注0解配置:

ServiceConfig:

  1. import org.springframework.context.annotation.ComponentScan;
  2. @ComponentScan("com.by.service") //等同<context:component-scan base-package="com.by"/>`
  3. public class ServiceConfig {
  4. }

5.springmvc配置

springmvc配置:

  1. <!--配置springmvc要扫描的包-->
  2. <context:component-scan base-package="com.by.controller,com.by.exception"></context:component-scan>
  3. <!--开启注解驱动:配置handlerMapping和handlerAdapter-->
  4. <mvc:annotation-driven conversion-service="cs"></mvc:annotation-driven>
  5. <!--配置日期转换器-->
  6. <bean id="cs" class="org.springframework.context.support.ConversionServiceFactoryBean">
  7. <property name="converters">
  8. <set>
  9. <bean class="com.by.converter.MyDateConverter"></bean>
  10. </set>
  11. </property>
  12. </bean>
  13. <!--配置视图解析器-->
  14. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  15. <property name="prefix" value="/WEB-INF/pages/"></property>
  16. <property name="suffix" value=".jsp"></property>
  17. </bean>
  18. <!--配置文件上传解析器-->
  19. <bean id="multipartResolver"
  20. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  21. <property name="maxUploadSize" value="5242880" />
  22. <property name="defaultEncoding" value="UTF-8" />
  23. </bean>
  24. <!--资源映射器:直接放行无须dispatcherServlet去处理-->
  25. <mvc:resources location="/head/" mapping="/head/**"/>
  26. <!--配置拦截器-->
  27. <mvc:interceptors>
  28. <mvc:interceptor>
  29. <mvc:mapping path="/account/**"/>
  30. <mvc:exclude-mapping path="/account/login"></mvc:exclude-mapping>
  31. <bean class="com.by.interceptor.LoginInterceptor"></bean>
  32. </mvc:interceptor>
  33. </mvc:interceptors>

springmvcl的纯注解配置:

SpringMVCConfig:

  1. import com.by.converter.MyDateConverter;
  2. import com.by.interceptor.LoginInterceptor;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.ComponentScan;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.format.FormatterRegistry;
  7. import org.springframework.web.multipart.commons.CommonsMultipartResolver;
  8. import org.springframework.web.servlet.ViewResolver;
  9. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  10. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  11. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  12. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  13. import org.springframework.web.servlet.view.InternalResourceViewResolver;
  14. @Configuration
  15. //等同于<context:component-scan base-package="com.by.controller>
  16. @ComponentScan("com.by.controller")
  17. //等同于<mvc:annotation-driven></mvc:annotation-driven>
  18. @EnableWebMvc
  19. public class SpringMVCConfig implements WebMvcConfigurer {
  20. @Bean
  21. public InternalResourceViewResolver internalResourceViewResolver(){
  22. InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
  23. viewResolver.setPrefix("/WEB-INF/pages/");
  24. viewResolver.setSuffix(".jsp");
  25. return viewResolver;
  26. }
  27. @Bean
  28. public CommonsMultipartResolver commonsMultipartResolver(){
  29. CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
  30. multipartResolver.setMaxUploadSize(5242880);
  31. multipartResolver.setDefaultEncoding("UTF-8");
  32. return multipartResolver;
  33. }
  34. //配置日期转换器
  35. @Override
  36. public void addFormatters(FormatterRegistry registry) {
  37. registry.addConverter(new DateConverter());
  38. }
  39. //配置拦截器
  40. @Override
  41. public void addInterceptors(InterceptorRegistry registry) {
  42. registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/**");
  43. }
  44. //配置静态资源的访问路径和位置
  45. @Override
  46. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  47. registry.addResourceHandler("/head/**").addResourceLocations("/head/");
  48. }
  49. }

6.servlet配置

servlet配置:

  1. <!--配置监听器:监听tomcat启动,加载spring配置文件-->
  2. <context-param>
  3. <param-name>contextConfigLocation</param-name>
  4. <param-value>classpath:applicationContext-*.xml</param-value>
  5. </context-param>
  6. <listener>
  7. <listener-class>
  8. org.springframework.web.context.ContextLoaderListener
  9. </listener-class>
  10. </listener>
  11. <!--前端控制器-->
  12. <servlet>
  13. <servlet-name>springmvc</servlet-name>
  14. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  15. <init-param>
  16. <param-name>contextConfigLocation</param-name>
  17. <param-value>classpath:springmvc.xml</param-value>
  18. </init-param>
  19. <load-on-startup>1</load-on-startup>
  20. </servlet>
  21. <servlet-mapping>
  22. <servlet-name>springmvc</servlet-name>
  23. <url-pattern>/</url-pattern>
  24. </servlet-mapping>
  25. <!--过滤器-->
  26. <filter>
  27. <filter-name>CharacterEncodingFilter</filter-name>
  28. <filter-class>
  29. org.springframework.web.filter.CharacterEncodingFilter
  30. </filter-class>
  31. <init-param>
  32. <param-name>encoding</param-name>
  33. <param-value>UTF-8</param-value>
  34. </init-param>
  35. </filter>
  36. <filter-mapping>
  37. <filter-name>CharacterEncodingFilter</filter-name>
  38. <url-pattern>/*</url-pattern>
  39. </filter-mapping>

servlet的纯注解配置:

WebConfig:

  1. import org.springframework.web.filter.CharacterEncodingFilter;
  2. import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
  3. import javax.servlet.Filter;
  4. /**
  5. * 当类扩展了AbstractAnnotationConfigDispatcherServletlnitializer并将其部署到 Servlet容器时,
  6. * 容器会自动发现它,并用它来配置Servlet环境
  7. */
  8. public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
  9. //设置Spring对应的配置类
  10. @Override
  11. protected Class<?>[] getRootConfigClasses() {
  12. return new Class[]{SpringConfig.class};
  13. }
  14. //设置SpringMVC对应的配置类,加载springmvc.xml
  15. @Override
  16. protected Class<?>[] getServletConfigClasses() {
  17. return new Class[]{SpringMVCConfig.class};
  18. }
  19. //设置dispatchServet匹配的url
  20. @Override
  21. protected String[] getServletMappings() {
  22. return new String[]{"/"};
  23. }
  24. //配置过滤器,处理post请求中文乱码过滤器
  25. @Override
  26. protected Filter[] getServletFilters() {
  27. CharacterEncodingFilter filter = new CharacterEncodingFilter();
  28. filter.setEncoding("utf-8");
  29. return new Filter[]{filter};
  30. }
  31. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/774544
推荐阅读
相关标签
  

闽ICP备14008679号