基于注解的IOC
IOC,控制反转,除了基于applicationContext.xml配置文件实现,还可以基于注解实现。
入门程序
开启注解扫描
<context:component-scan base-package="wangfei910.Demo04"/>
<!-- 也可以这样写,这是扫描package gongfukangee下的所有内容 -->
<context:component-scan base-package="wangfei910"/>
编写持久层和业务层
-
Dao
public interface UserDao { public void save(); } //@Repository 将UserDaoImpl 控制权交给Spring @Repository(value = "userDao") public class UserDaoImpl implements UserDao { @Override public void save() { System.out.println("注入成功、保存信息"); } } -
Service
public interface UserService04 { public void sayhello(); } @Component(value = "userService04") public class UserServiceImpl04 implements UserService04 { //给name属性注入“王五” 的值,setName 方法可以省略不写 @Value(value = "王五") private String name; @Autowired @Qualifier(value = "userDao") private UserDao userDao; @Override public void sayhello() { System.out.println("Demo04: Hello Spring! "+name); userDao.save(); } }-
类的注解
@Component(value = "userService04")组件注解,标记类,相当于<bean id="userService" class="gongfukangee.Demo04.UserServiceImpl04"> -
方法的注解
@Autowired 按照类型自动装配 @Qualifier 按照名称注入 名称为 UserDaoImpl.java 中的 [ @Repository(value = "userDao")]也可以单独使用Java提供的,Spring支持的按名称注入的注解
@Resource(name="userDao")
-
Bean管理中的常用注解
-
@Component组件,作用在类上Spring中提供了
@Component的三个衍生注解,功能目前来讲是一致的@Controller:WEB层@Service:业务层@Repository:持久层
-
属性注入的注解
-
注入普通类型
@value -
注入对象类型:
-
@Autowired:默认按类型自动装配@Qualifier:强制使用名称注入 -
@Resource:Java提供的注解,属性使用name属性
-
-
Bean自身相关注解
-
Bean作用范围注解
注解为
@Scope(value="prototype"):singleton单例prototype多例 -
Bean生命周期注解
@PostConstruct相当于init-method@PreDestroy相当于destroy-method
下一篇:Spring学习笔记[4]之AOP[面向切面编程] https://blog.youkuaiyun.com/Rabbit_Judy/article/details/81842572
本文介绍了Spring框架中基于注解实现控制反转(IOC)的方法,包括如何通过注解进行依赖注入、组件扫描等操作,并提供了具体的代码示例。
8046

被折叠的 条评论
为什么被折叠?



