1.注解开发定义bean
类前加@Component
@Component("bookDao")
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("book dao save ...");
}
}
修改Spring配置文件
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
">
<context:component-scan base-package="com.itheima"/>
2.纯注解开发
Spring3.0升级了纯注解开发,不需要写配置文件
使用配置类代替配置文件 @Configuration
@Configuration //配置文件
@ComponentScan("com.itheima") //扫描bean
public class SpringConfig {
}
public class App {
public static void main(String[] args) {
// 此处由读取配置文件改为读取配置类
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
BookDao bookDao = (BookDao) context.getBean("bookDao");
System.out.println(bookDao);
}
}
3.依赖注入 (自动装配)
@Service
public class BookServiceImpl implements BookService {
@Autowired
@Qualifier("bookDao") //指定名称
private BookDao bookDao;
public void save() {
System.out.println("book service save ...");
bookDao.save();
}
}
使用@value可以实现简单类型注入
4.管理第三方bean
@Configuration
@Import({JdbcConfig.class})
public class SpringConfig {
}
public class JdbcConfig {
// 定义方法 获得管理的对象
// 把方法的返回值定义为bean
@Bean
public DataSource dataSource(){
// 手动编程
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/db2");
dataSource.setUsername("root");
dataSource.setPassword("1234");
return dataSource;
}
}
public class App {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
// BookService bookService = (BookService) context.getBean(BookService.class);
// BookDao bookDao = (BookDao) context.getBean("bookDao");
DataSource bean = context.getBean(DataSource.class);
System.out.println(bean);
}
}