7、使用java的方式配置spring

1、配置类相当于beans.xml

@Configuration//也会注册到Spring容易中@Configuration代表这是一个配置类相当于beans.xml
@ComponentScan("cn.zhy")//包扫描机制
@Import(MyConfig2.class)  //导入合并其他配置类,类似于配置文件中的 inculde 标签
public class MyConfig {

    // @Bean相当于之前的bean标签
    //这个方法的名字,相当于bean标签中的id属性
    //这个方法的返回值,相当于bean标签中的class属性
    @Bean
    public User user() {
        return new User();//就是返回到要注入到bean中的实现类
    }
}

2、实体类

@Component
public class User {

    private String name;

    public String getName() {
        return name;
    }

    @Value("小张")
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

测试

public static void main(String[] args) {
    //如果完全使用了配置类的方式去做,
    //我们就只能通过AnnotationConfig上下文获取容器,通过配置类的class对象加载
    ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
    User getUser = (User) context.getBean("user");
    System.out.println(getUser.getName());
}

补充
● spring+jdbc
● 配置类 @Configuration也会注册到Spring容器中@Configuration代表这是一个配置类相当于beans.xml
● @ComponentScan(“cn.zhy”)包扫描机制
● @Bean相当于之前的bean标签,加在方法上,这个方法的名字,相当于bean标签中的id属性,这个方法的返回值,相当于bean标签中的class属性

@Configuration
@ComponentScan("cn.zhy.spring03")
public class SpringConfig {

    @Bean
    public Connection getConnectionOne(JdbcConfig jdbcConfig) throws Exception {
        Class.forName(jdbcConfig.getDriver());
        return DriverManager.getConnection(jdbcConfig.getUrl(), jdbcConfig.getUsername(), jdbcConfig.getPassword());
    }

    @Bean
    public Connection getConnectionTwo(JdbcConfig jdbcConfig) throws Exception {
        Class.forName(jdbcConfig.getDriver());
        return DriverManager.getConnection(jdbcConfig.getNewUrl(), jdbcConfig.getNewUsername(), jdbcConfig.getNewPassword());
    }

jdbc配置类
@PropertySource(value = “jdbc.properties”)读取properties文件
@Value(“${jdbc.driver}”)给属性设置值

@PropertySource(value = "jdbc.properties")
@Component
@Data
@NoArgsConstructor
@AllArgsConstructor
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;
}

测试

 @Test
    public void selectUser() throws SQLException {
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        Connection connection = (Connection) context.getBean("getConnectionOne");
        String sql = "select * from user where id = ?";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1, "13");
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()) {
            System.out.println(resultSet.getString("username"));
            System.out.println(resultSet.getString("password"));
            System.out.println(resultSet.getString("nickname"));
        }
        resultSet.close();
        preparedStatement.close();
        connection.close();
    }

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值