springboot读取jar外部配置文件,spring mybatis配置文件(springboot读取jar包外的配置文件)
- 行业动态
- 2024-04-24
- 4082
在Spring Boot中,我们可以使用@PropertySource注解来读取外部配置文件,以下是详细的步骤和小标题:
1、创建一个外部配置文件
我们需要创建一个外部配置文件,例如application.properties,并将其放在与jar包相同的目录下,在这个文件中,我们可以定义一些配置属性,例如数据库连接信息、MyBatis配置等。
2、在Spring Boot项目中添加依赖
在项目的pom.xml文件中,添加以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>springbootstarter</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatisspringbootstarter</artifactId> <version>2.1.4</version> </dependency>
3、创建配置类
创建一个配置类,例如AppConfig.java,并使用@Configuration注解标记它,在这个类中,我们可以使用@PropertySource注解来指定要读取的外部配置文件,我们可以使用@Value注解将配置文件中的属性值注入到相应的字段或方法参数中。
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.beans.factory.annotation.Value; @Configuration @PropertySource(value = "classpath:application.properties") public class AppConfig { @Value("${db.url}") private String dbUrl; @Value("${db.username}") private String dbUsername; @Value("${db.password}") private String dbPassword; // 其他配置... }
4、在MyBatis配置类中使用外部配置
在MyBatis的配置类中,我们可以使用SqlSessionFactoryBean来创建SqlSessionFactory实例,通过设置DataSource、MapperLocations等属性,我们可以将外部配置文件中的配置应用到MyBatis中。
import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource; import java.util.Properties; @Configuration @EnableTransactionManagement @MapperScan(basePackages = "com.example.mapper") // 扫描Mapper接口所在的包 public class MyBatisConfig { @Autowired private AppConfig appConfig; // 注入AppConfig类,获取外部配置信息 @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); // 设置数据源 sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*Mapper.xml")); // 设置Mapper映射文件的位置和名称模式 sessionFactory.setTypeAliasesPackage("com.example.entity"); // 设置实体类的包名,用于自动扫描和注册实体类到MyBatis中 sessionFactory.setConfigurationProperties(properties()); // 设置MyBatis的配置属性,从外部配置文件中读取值 return sessionFactory.getObject(); } @Bean public PlatformTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource()); // 设置事务管理器的数据源为上面创建的数据源实例 } private DataSource dataSource() { // 创建数据源实例,这里可以根据实际情况选择使用不同的数据源实现,如Druid、HikariCP等,这里以Druid为例: DruidDataSource dataSource = new DruidDataSource(); // 创建Druid数据源实例,并设置相关属性值,如URL、用户名、密码等,这些属性值可以从外部配置文件中读取。... return dataSource; } private Properties properties() { // 从外部配置文件中读取MyBatis的配置属性,并返回一个Properties对象。... return properties; } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/239068.html