三层架构

controller
接收前端发送的请求,对请求进行处理,并相应数据。
service
业务逻辑层,处理具体的业务逻辑
dao
数据访问层(持久层),负责数据访问操作,增删改查。

控制反转(IOC):对象创建的控制权由程序本身转移到外部(容器)。
依赖注入(DI):容器为应用程序提供运行时所依赖资源。
Bean对象:IOC容器中创建,管理的对象。
@Component 加在类上,可以将其加入容器,想用的时候再@Autowired
@Controller@Service、和@Repository都是特化的@Component

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// UserController.java
@Component
public class UserController {

@Autowired
private UserService userService;

public void createUser(String username) {
userService.addUser(username);
}
}

// UserService.java
@Service
public class UserService {

@Autowired
private UserDAO userDAO;

public void addUser(String username) {
userDAO.insertUser(username);
}
}

// UserDAO.java
@Repository
public class UserDAO {

public void insertUser(String username) {
// 逻辑来插入用户到数据库
// 例如:使用JdbcTemplate或其他ORM工具
}
}

如果同类型的bean存在多个:

  • @Primary(将这个类提到第一位)
  • @Autowired + @Qualifier(”bean的名称”)
  • @Resource(name=”bean的名称”)