SpringBoot + Nutz数据源配置 java

Druid 数据源与 NutzDAO 配置
本文介绍了如何使用 Druid 作为数据源并配置 NutzDAO 的过程。通过 Spring Boot 的 Environment 对象获取数据库连接参数,并利用 DruidDataSourceFactory 创建数据源,最后将数据源设置给 NutzDAO 完成 ORM 层配置。

DruidDataSourceConfig.java

@Configuration
public class DruidDataSourceConfig {
    @Autowired
    Environment environment;

    @Bean
    public DataSource druidDataSource() throws Exception {
        Properties properties = new Properties();
        properties.put("url", environment.getProperty("spring.datasource.url"));
        properties.put("username", environment.getProperty("spring.datasource.username"));
        properties.put("password", environment.getProperty("spring.datasource.password"));
        properties.put("driver", environment.getProperty("spring.datasource.driver-class-name"));
        properties.put("type", environment.getProperty("spring.datasource.type"));
        properties.put("platform", environment.getProperty("spring.datasource.platform"));
        properties.put("initial-size", environment.getProperty("spring.datasource.tomcat.initial-size"));
        properties.put("max-active", environment.getProperty("spring.datasource.tomcat.max-active"));
        properties.put("initialPoolSize", environment.getProperty("spring.datasource.initialPoolSize"));
        properties.put("minPoolSize", environment.getProperty("spring.datasource.minPoolSize"));
        properties.put("maxPoolSize", environment.getProperty("spring.datasource.maxPoolSize"));
        properties.put("maxStatements", environment.getProperty("spring.datasource.maxStatements"));
        properties.put("maxIdleTime", environment.getProperty("spring.datasource.maxIdleTime"));
        properties.put("acquireIncrement", environment.getProperty("spring.datasource.acquireIncrement"));
        properties.put("acquireRetryAttempts", environment.getProperty("spring.datasource.acquireRetryAttempts"));
        properties.put("acquireRetryDelay", environment.getProperty("spring.datasource.acquireRetryDelay"));
        properties.put("testConnectionOnCheckin", environment.getProperty("spring.datasource.testConnectionOnCheckin"));
        properties.put("idleConnectionTestPeriod", environment.getProperty("spring.datasource.idleConnectionTestPeriod"));
        properties.put("checkoutTimeout", environment.getProperty("spring.datasource.checkoutTimeout"));
        properties.put("filters", environment.getProperty("spring.datasource.filters"));
        return DruidDataSourceFactory.createDataSource(properties);
    }
}

NutzDaoConfig.java

@Configuration
@Component("qdao")
public class NutzDaoConfig extends NutDao implements Dao {
    DataSource druidDataSource;

    @Autowired
    public void setDruidDataSource(DataSource druidDataSource) {
        this.druidDataSource = druidDataSource;
        setDataSource(druidDataSource);
    }
}

这里写图片描述

application.preperties

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/qeustionaire?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.platform=mysql
spring.aop.proxy-target-class=true
spring.thymeleaf.cache=false

示例:

@Resource
    private Dao qdao;
### 集成Nutz框架到Spring Boot项目的实现方法 要在Spring Boot项目中集成并使用Nutz框架,可以按照以下方式完成配置和开发工作。 #### 添加Maven依赖 首先,在`pom.xml`文件中引入必要的依赖项。以下是用于集成Nutz框架的核心依赖: ```xml <dependency> <groupId>org.nutz</groupId> <artifactId>nutzboot-starter-nutzmvc</artifactId> <version>2.2.8-SNAPSHOT</version> </dependency> <!-- 如果需要数据库支持 --> <dependency> <groupId>org.nutz</groupId> <artifactId>nutz-dao</artifactId> <version>1.r.67</version> </dependency> ``` 这些依赖提供了Nutz MVC以及数据访问对象(DAO)的支持[^4]。 #### 创建核心配置类 为了使Nutz与Spring Boot无缝协作,需创建一个自定义配置类来初始化Nutz环境。可以通过覆盖默认的`NutConfig`行为来设置模块加载器和其他参数。 ```java import org.nutz.boot.starter.NbApp; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class NutzConfig { @Bean(initMethod = "start", destroyMethod = "stop") public NbApp nbApp() { return new NbApp().setArgs(new String[]{}); } } ``` 此代码片段展示了如何通过Spring Bean生命周期管理Nutz应用实例的启动与停止过程[^5]。 #### 编写控制器 利用Nutz特有的注解风格编写RESTful API接口。下面是一个简单的例子展示如何定义路径映射及处理GET请求: ```java @Modules(scanPackage=true) @Path("/hello") public class HelloModule extends NutControllerAdapter { @At("/") @Ok("json") public Object index(@Param("name") String name){ Map<String,Object> result=new HashMap<>(); result.put("message","Hello "+(Strings.isBlank(name)? "World":name)); return result; } } ``` 这里采用了Nutz独有的路由机制,并结合JSON响应格式返回数据给客户端[^6]。 --- ### 注意事项 当同时存在多个自动化配置工具时(例如Jasypt或Dubbo),可能会发生冲突的情况。因此建议仔细阅读官方文档确认兼容性问题[^7]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值