概述
dao层交给容器管理的注解@Resposity
注解的作用:简化代码,以低耦合的进行使用(解耦)
@Target表示对谁有效
@Retention:在什么时候有效
@autowired默认按照类型注入,如果要想按照名字进行注入那么就要在加一个注解 @Qualifier(“名字”)(一般不写)
Spring当中通过beanfactory接口进行创建对象;但是在加载第三方框架的时候使用的是factorybean(即在执行业务的时候);
@Test
public void test01(){
//通过此方式加载配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("application_1.xml");
//如果讲配置文件改为配置类
/**
ApplicationContext context =
new AnnotationConfigApplicationContext(SpringConfig.class);
*/
/**通过类型进行获取
UserController userController = context.getBean(UserController.class);*/
//通过名字进行注入
UserController userController =
(UserController) context.getBean("userController");
userController.addUser();
}
Spring当中通过beanfactory接口进行创建对象;但是在加载第三方框架的时候使用的是factorybean(即在执行业务的时候);
简化配置文件,有配置类进行代替
在配置类中加上@Configuration注解即可说明这是一个配置类;
如果注解中有value属性,那么可以省略包扫描注解@Mapperscan(“路径”)
1.6 Spring注解模式执行过程
1).当程序启动Spring容器时 AnnotationConfigApplicationContext 利用beanFactory实例化对象
2).根据配置类中的包扫描开始加载指定的注解(4个). 根据配置文件的顺序依次进行加载
3).当程序实例化Controller时,由于缺少Service对象,所以挂起线程 继续执行后续逻辑.
当构建Service时,由于缺少Dao对象,所以挂起线程 继续执行后续逻辑.
当实例化Dao成功时,保存到Spring所维护的Map集合中. 执行之前挂起的线程.
所以以此类推 所有对象实现封装.最终容器启动成功
4). 根据指定的注解/注入指定的对象.之后统一交给Spring容器进行管理.最终程序启动成功.
1.5.1 接口多实现类情况说明
原则: Spring中规定 一个接口最好只有一个实现类.
业务需求: 要求给UserService接口提供2个实现类.
则使用@qualify的名字必须唯一
注入两个实现类
Spring管理数据的注解@bean
@Bean作用
通过该注解,可以将业务数据实例化之后,交给Spring容器管理. 但是@Bean注解应该写到配置类中.
Spring动态获取外部数据
编辑properties文件
properties文件里不能写name属性,通过名字(name)属性写成username
要想获取properties文件中的属性的值则需要加//@PropertySource 作用: 加载指定的pro配置文件 将数据保存到Spring容器中
encoding:指定字符集编码格式
@PropertySource(value = “classpath:/user.properties”,encoding = “UTF-8”)
//@Value(" u s e r . i d " ) 在 S p r i n g 容 器 中 查 找 k e y = u s e r . i d 的 数 据 . 通 过 {user.id}") 在Spring容器中查找key=user.id的数据.通过 user.id")在Spring容器中查找key=user.id的数据.通过{} 进行触发 ,从容器中的值存入到我们的属性; @Value("${user.id}")
最后
以上就是单纯紫菜为你收集整理的全注解开发的全部内容,希望文章能够帮你解决全注解开发所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复