spring5.x版本 java配置和annotation配置說明
java配置
@Configuration //這個註解的意思是相當於把此類當作一個xml檔案
public class AppConfig {
@Bean(name="userService") //這個註解相當於xml檔案裡的<bean>
public UserService userService() {
UserService service = new UserService();
service.setUserDAO(userDAOIml());
return service;
}
@Bean
public UserDAOIml userDAOIml() {
return new UserDAOIml();
}
}
public class UserServiceTest {
@Test
public void testAdd() {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
// UserService service = (UserService)context.getBean(UserService.class);
UserService service = (UserService)context.getBean("userService");
User user = new User();
user.setName("xxx");
user.setPassword("123456");
service.add(user);
}
}
這樣就不需要XML檔案了。直接用類名或者Bean名都可以獲取。
Annotation配置
首先XML配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 開啟annotation配置 -->
<context:annotation-config/>
<!-- 掃描以com開頭的包裡邊的bean -->
<context:component-scan base-package="com"/>
</beans>
接著用@Repository配置這兩個實現同一個介面的DAO。
@Repository
public class UserDAOIml implements UserDAO {
@Override
public void save(User user) {
// TODO Auto-generated method stub
System.out.println("UserDAOIml: -----save a user");
}
}
@Repository
public class UserDAOIml2 implements UserDAO {
@Override
public void save(User user) {
// TODO Auto-generated method stub
System.out.println("UserDAOIml2: -----save a user");
}
}
接下來配置呼叫的類
@Service
public class UserService {
@Autowired
@Qualifier("userDAOIml2") //如果沒有這句就會報錯,Spring不知道該注入哪個實現類
private UserDAO userDAO;
public UserService() {
// TODO Auto-generated constructor stub
System.out.println("初始化");
}
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public void add(User user) {
userDAO.save(user);
}
}
試過不加@Service也能執行成功,暫時不知道啥情況
呼叫方法
@Test
public void testAdd() {
ApplicationContext context = new ClassPathXmlApplicationContext("benasAnnotation.xml");
UserService service = (UserService)context.getBean(UserService.class);
User user = new User();
user.setName("xxx");
user.setPassword("123456");
service.add(user);
}
}
Spring提供四種配置bean的註解。目前測試暫時效果都一樣的
@Component @Controller @Service @Repository 回頭用的時候再補充吧
相關文章
- rust配置說明Rust
- java WebSocket 即時通訊配置使用說明JavaWeb
- elasticsearch.yml 配置說明Elasticsearch
- kettle MongoDB Output 配置說明MongoDB
- 雷池 docker env 配置說明Docker
- Nginx的配置檔案說明Nginx
- ADS-B接入配置說明
- keycloak~token配置相關說明
- MobTech ShareSDK 後臺配置說明
- Java Out Of Memory解決之JAVA_OPTS引數說明與配置Java
- nginx 詳解 - 詳細配置說明Nginx
- VNC安裝配置詳細說明VNC
- Nginx的gzip配置引數說明Nginx
- nginx 詳解 – 詳細配置說明Nginx
- Revit Server的注意要配置說明Server
- 【NETWORK】Oracle RAC 心跳地址配置說明Oracle
- nginx日誌配置檔案說明Nginx
- openssh版本更新與說明 openssl版本更新與說明
- vue-cli@3.0 使用及配置說明Vue
- php.ini 核心配置選項說明PHP
- EtherCAT轉Profinet閘道器配置說明第三講:博圖配置
- WIndows環境配置多版本JavaWindowsJava
- Rockchip RK3399 SDMMC 的 DTS 配置說明
- Rockchip RK3399 SDIO 的 DTS 配置說明
- Rockchip RK3399 eMMc 的 DTS 配置說明
- Dubbo23_Dubbo相關配置說明6
- 備忘錄一:Spring Boot HikariCP 配置說明Spring Boot
- Oracle Exadata X8 Hardware DataSheet (配置說明)Oracle
- 阿里 Nacos 註冊中心 配置啟動說明阿里
- CentOS8中systemd配置檔案說明CentOS
- 【cartographer_ros】七: 主要配置引數說明ROS
- 如何在Net6.0裡配置多版本支援並支援註釋說明的SwaggerSwagger
- Splunk實戰(一)——索引器配置以及轉發器安裝配置說明索引
- 說說Darknet 如何和QT qtcreator配置使用QT
- CH9120網口配置協商及說明
- PHP 程式管理器 PHP-fpm 配置說明PHP
- PHP CS Fixer 的使用及 PHP Storm 配置說明PHPORM
- Solon 框架詳解(十一)- Solon Cloud 的配置說明框架Cloud