java的datasource_Spring、Java中需要属性“dataSource”

我刚开始学习Spring,现在我尝试将基于springjdbc的DAO应用程序打包。

@Configuration

@ComponentScan("com.foxminded.university")

public class SpringJdbcConfig {

@Bean

public DataSource dataSource() {

DriverManagerDataSource dataSource = new DriverManagerDataSource();

dataSource.setDriverClassName("org.postgresql.Driver");

dataSource.setUrl("jdbc:postgresql://127.0.0.1:5432/university");

dataSource.setUsername("maintainer");

dataSource.setPassword("12345678");

return dataSource;

}

}

@Component

public class BuildingDao implements Dao {

@Autowired

private DataSource dataSource;

private final JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

private static final String SAVE_BUILDING = "Insert into buildings (name, floors) values (?,?)";

@Override

public void save(Building building) {

jdbcTemplate.update(SAVE_BUILDING, building.getName(), building.getFloors());

}

}

Exception in thread "main" java.lang.IllegalArgumentException: Property 'dataSource' is required

我怎么能修好它?如我所见,我不正确地使用@Autowired,因为当我使用的时候一切都很好

private DataSource dataSource = new SpringJdbcConfig().dataSource();

但就国际奥委会而言,这是一种额外的关系和错误。

顺便说一句,我也要用这种方式

public class Main {

public static void main(String[] args) {

Building building = new SpringJdbcConfig().building();

building.setName("hghgf");

building.setFloors(2);

BuildingDao buildingDao = new SpringJdbcConfig().buildingDao();

buildingDao.save(building);

}

}

如果您能解释一下如何正确使用@autowired并将bean注入主类,我将不胜感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值