Spring的一些基本配置

1. JDBC配置


@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    //配置连接池
    @Bean
    public DataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

    //Spring事务管理需要的平台事务管理器对象
    @Bean
    public PlatformTransactionManager transactionManager(DataSource dataSource){
        DataSourceTransactionManager ds = new DataSourceTransactionManager();
        ds.setDataSource(dataSource);
        return ds;
    }
}

2. MyBatis配置

/**
 1. @author zws
 2. @date 2022/08/06/17:06
 */
public class MybatisConfig {
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        factoryBean.setTypeAliasesPackage("com.itheima.dao");
        //创建配置对象
        Configuration configuration = new Configuration();
        //开启日志记录,显示SQL语句
        configuration.setLogImpl(StdOutImpl.class);
        //设置列名下划线与驼峰命名对应
        configuration.setMapUnderscoreToCamelCase(true);
        //指定工厂的配置对象
        factoryBean.setConfiguration(configuration);
        return factoryBean;
    }

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        msc.setBasePackage("com.itheima.dao");
        return msc;
    }
}

3. ServletConfigInitializer


//web容器配置类
public class ServletConfigInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
    //加载springmvc配置类,产生springmvc容器(本质还是spring容器)
    protected WebApplicationContext createServletApplicationContext() {
        //初始化WebApplicationContext对象
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        //加载指定配置类
        ctx.register(SpringMvcConfig.class);
        return ctx;
    }

    //乱码处理
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }

    //设置由springmvc控制器处理的请求映射路径
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    //加载spring的配置类
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[0];
    }


}

4. Spring配置

@Configuration
@ComponentScan("com.itheima.service")
@Import({JdbcConfig.class,MybatisConfig.class})
@EnableTransactionManagement //开启Spring事务管理
public class SpringConfig {
}

5. SpringMVC配置

@Configuration
@ComponentScan({"com.itheima.controller","com.itheima.common","com.itheima.config"})
@EnableWebMvc
public class SpringMvcConfig {
}

6.SpringMVCSupport 拦截器/静态资源

@Configuration
public class SpringMvcSupport extends WebMvcConfigurationSupport {
    //设置静态资源访问过滤,当前类需要设置为配置类,并被扫描加载
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        //当访问/pages/xxxx时候,从/pages目录下查找内容
        registry.addResourceHandler("/pages/**")
                .addResourceLocations("/pages/");
        registry.addResourceHandler("/js/**")
                .addResourceLocations("/js/");
        registry.addResourceHandler("/css/**")
                .addResourceLocations("/css/");
        registry.addResourceHandler("/plugins/**")
                .addResourceLocations("/plugins/");
    }

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new BookInterceptor()).addPathPatterns("/books/**").excludePathPatterns("/books/find");
    }
}

7. SpringBoot的YAML

# tomcat的配置
server:
  port: 8080
  servlet:
    context-path: /

# 连接池的配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

  # 配置Redis
  redis:
    host: localhost
    port: 6379

# mybatis的配置
mybatis:
  # mybatis 别名扫描
  type-aliases-package: com.itheima.pojo
  # mapper.xml文件位置
  mapper-locations: classpath:mapper/*.xml
  # 驼峰映射
  configuration:
    map-underscore-to-camel-case: true

# mybatis-plus的配置
mybatis-plus:
  global-config:
    db-config:
      # 表的前缀
      table-prefix: tab_
      # 主键自增长类型
      id-type: auto
  configuration:
    # 显示SQL语句的日志信息
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值