目录
一、纯注解开发模式
1、@Component
位置 :类定义上方
作用 :设置该类为spring管理的bean
属性 :value(默认):定义bean的id
对于@Component注解,还衍生出了其他三个注解@Controller(表现层)、@Service(业务层)、@Repository(数据层),这三个注解和@Component注解的作用是一样的
2、@Configuration
位置 :类定义上方
作用 :设置该类为spring配置类
属性 :value(默认):定义bean的id
3、@ComponentScan
位置 :类定义上方
作用 :设置spring配置类扫描路径,用于加载使用注解格式定义的bean
属性 :value(默认):扫描路径,此路径可以逐层向下扫描
4、@Scope
位置 : 类定义上方
作用 : 设置该类创建对象的作用范围<br/>可用于设置创建出的bean是否为单例对象
属性 : value(默认):定义bean作用范围,默认值singleton(单例),可选值prototype
二、bean的生命周期
1、@PostConstruct
位置 :方法上
作用 :设置该方法为初始化方法
2、@PreDestroy
位置 :方法上
作用 :设置该方法为销毁方法
三、注解开发依赖注入
1、引用数据类型注入
(1)添加BookDao、BookDaoImpl、BookService、BookServiceImpl类和配置类SpringConfig以及运行类App
public interface BookDao {
public void save();
}
@Repository
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("book dao save ..." );
}
}
public interface BookService {
public void save();
}
@Service
public class BookServiceImpl implements BookService {
private BookDao bookDao;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
public void save() {
System.out.println("book service save ...");
bookDao.save();
}
}
(2)在BookServiceImpl类的bookDao属性上添加@Autowired注解,并去掉setter方法
(3)运行App类,结果为
2、简单数据类型注入
(1)在BookDaoImpl类中添加一个name属性,使用@Value注解,将值写入注解的参数中
(2)运行App类,结果为
四、注解读取properties配置文件
(1)resource下准备properties文件
(2)使用注解加载properties配置文件
(3)使用@Value读取配置文件中的内容
(4)运行App类,结果为
五、注解开发管理第三方bean
(1)导入对应的jar包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
(2)在配置类中添加一个方法,并在方法上添加@Bean注解
(3)从IoC容器中获取对象并打印
六、引入外部配置类
(1)新建一个JdbcConfig配置类,并把数据源配置到该类下
(2)在Spring配置类上使用@Import注解手动引入需要加载的配置类
(3)从IoC容器中获取对象并打印
七、注解开发实现为第三方bean注入资源
1、简单数据类型
(1)在JdbcConfig类中提供四个属性,并使用@Value注解引入值
(2)从IoC容器中获取对象并打印
2、引用数据类型
(1)在SpringConfig中扫描BookDao
(2)在JdbcConfig类的方法上添加参数
(3)从IoC容器中获取对象并打印