1、SpringIOC与DI
Spring提供了IOC容器以及DI(依赖注入)的方式来帮助我们管理bean(创建对象),可以达到松耦合的效果
例如我们有一个Service类和一个Dao类,我们以前想要让Service调用Dao类中的方法,那么必须在Service中用new创建Dao的对象,就可以用对象调用方法,
而Spring提供IOC容器帮我们做了两件事:
1、让new主动产生对象转化为由外部提供对象,也就是我们不再
使用new创建对象,我们吧service对象和dao对象交给IOC容器创建
2、(DI)依赖管理:IOC容器把有依赖关系的两个对象绑定好
例如我们的service要调用dao的方法,那就可以说service依赖dao
所以IOC可以将这两个对象绑定,service同样可以调用dao的run()方法
而我们把IOC中的对象叫都做Bean;
2、Spring纯注解开发配置
1、引入spring依赖
1、引入spring依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.10</version>
</dependency>
2、写启动类
@Configuration
@ComponentScan(basePackages = {"com.example.demo"})
public class Application {
public static void main(String[] args) {
//加载配置类
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext(Application.class);
// 获取并调用需要的Bean
UserController userController = context.getBean(UserController.class);
userController.run();
// 关闭Spring上下文
context.close();
}
}
3、controller层
@Controller
public class UserController {
@Autowired
private UserService userService;
public void run(){
System.out.println("controller");
userService.run();
}
}
4、Service层
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void run(){
System.out.println("service");
userDao.run();
}
}
Dao层
@Repository
public class UserDao {
// 实现数据访问逻辑...
public void run(){
System.out.println("dao....");
}
}
最后在启动类中测试