@service@component注⼊先后顺序_SSM框架之Spring-IoC
和DI的。。。
SSM 框架学习 (Spring篇)
⼀、IoC和DI
IoC(Inversion of Control)控制反转Spring两⼤核⼼之⼀,是⼀种不同于传统的设计思想。
那何来控制反转⼀说呢?我们先看传统的Java程序设计,当我们⼀个类内部需要⼀个对象资源时,通常是主动在内部new创建这个对象,是
程序主动创建依赖对象的。
⽽IoC是有⼀个专门的容器来管理对象(资源)的创建的,当⼀个类需要其他对象时,是由IoC容器创建提供的,此时控制权实在IoC容器上
的,所以控制反转了。
就好⽐你需要绞尽脑汁的寻⾃⼰⼼仪的对象,变成了对象是由国家分配的,不⽤你主动寻,你只需摆好姿势接收就⾏了。
那问题⼜来了!DI(Dependency Injection)依赖注⼊⼜是什么?似乎跟IoC很容易弄混!(没错,我开始就很混乱!)
其实IoC和DI是同⼀设计思想的不同⾓度的解读。这么说吧,IoC是设计⽬的,DI则是实现的⼿段,所以DI是Spring中实现IoC的主要机制或
者说⽅式。
⼆、注⼊⽅式
注⼊⽅式有很多种,下⾯我会把我所学过的注⼊⽅式⼀⼀列举。
1.构造⽅式注⼊
这⾥只有⼀个类Greeting.java,测试类略~
public class Greeting { private String name = "Nobody"; private String words = "Nothing"; public Greeting() {} // 建议添加⽆参构造 /** * 注⼊name和words * @param 主要配置
马云我根本没有钱!
2.setter⽅式注⼊
public class Dialogue { // 说话的⼈ private String person = "Nobody"; // 说话内容 private String words = "Nothing"; /** * 获取说话的⼈ * @return */ public String getP 主要配置
spring ioc注解⽼⼦中午不睡,下午崩溃!孔⼦⽼⼦说的对!
3.注解⽅式注⼊
四种主要注解
@Component:可以⽤于注册所有bean@Repository:主要⽤于注册dao层的bean@Controller:主要⽤于注册控制层的bean@Service:主要⽤于注册服务层的bean 实体类User.java
public class User { private int id; private String username; private String password; private String email; public int getId() { return id; } public void setId(int id
DAO层接⼝UserDao.java
public interface UserDao { public int save(User user);}
UserDaoImp.java
@Repository("userDao") // 这个注解等同于在XML配置⽂件中编写public class UserDaoImp implements UserDao { public int save(User user) { System.out.println("服务层接⼝UserService.java
public interface UserService { public void addNewUser(User user);}
UserServiceImp.java
@Service("userService")public class UserServiceImp implements UserService { // ⽅式⼀: // 声明接⼝类型的引⽤,和具体实现类解耦合// @Autowired //默认按类型匹配置,使⽤注解,配置就很简单了,只有⼀条配置就够了
该有的解释已经在注释⾥了
@Author 瞌睡⾍
@mybatis-3.2.2
@Database: mysql 5.7.15
@Tool: MyEclipse
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论