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();
}
结果