日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Spring的Java配置方式

發(fā)布時間:2025/6/15 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring的Java配置方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java配置是Spring4.x推薦的配置方式,可以完全替代xml配置。

1 ? ? @Configuration 和 @Bean

Spring的Java配置方式是通過 @Configuration 和 @Bean 這兩個注解實現(xiàn)的:

1、@Configuration 作用于類上,相當于一個xml配置文件;

2、@Bean 作用于方法上,相當于xml配置中的<bean>;

?

2 示例

該示例演示了通過Java配置的方式進行配置Spring,并且實現(xiàn)了Spring IOC功能。

  2.1 創(chuàng)建工程以及導入依賴(Maven)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.qiaoliqiang</groupId><artifactId>spring-boot</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.7.RELEASE</version></dependency><!-- 連接池 --><dependency><groupId>com.jolbox</groupId><artifactId>bonecp-spring</artifactId><version>0.8.0.RELEASE</version></dependency></dependencies><build><finalName>${project.artifactId}</finalName><plugins><!-- 資源文件拷貝插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><encoding>UTF-8</encoding></configuration></plugin><!-- java編譯插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin></plugins><pluginManagement><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version></plugin></plugins></pluginManagement></build> </project>

?

  2.2 ? 編寫User對象

package cn.qlq;public class User {private String username;private String password;private int age;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

 

  2.3 ? 編寫UserDAO 用于模擬與數(shù)據(jù)庫的交互(注意此DAO沒有打注解)

package cn.qlq;import java.util.ArrayList; import java.util.List;/*** 模擬UserDao查詢數(shù)據(jù)庫* * @author liqiang**/ public class UserDao {/*** 模擬查到10個 用戶* * @return*/public List<User> queryUserList() {List<User> result = new ArrayList<User>();// 模擬數(shù)據(jù)庫的查詢for (int i = 0; i < 10; i++) {User user = new User();user.setUsername("username_" + i);user.setPassword("password_" + i);user.setAge(i + 1);result.add(user);}return result;}}

?

  2.4 ? 編寫UserService 用于實現(xiàn)User數(shù)據(jù)操作業(yè)務邏輯(聲明service注解,且自動注入dao對象)

package cn.qlq;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;//聲明是service層對象 @Service public class UserService {@Autowired // 自動注入Spring容器中的dao層對象(byType注入)private UserDao UserDao;public List<User> queryUserList() {// 調用userDAO中的方法進行查詢return this.UserDao.queryUserList();}}

?

  2.5 ? 編寫SpringConfig 用于實例化Spring容器

打上@Configuration注解,同時打上@ComponentScan配置掃描的包。

@Bean用于向容器中放入對象,如果在UserDao類前面打上@Repository注解就不用@Bean方式

package cn.qlq;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;@Configuration // 通過該注解來表明該類是一個Spring的配置,相當于一個xml文件 @ComponentScan(basePackages = "cn.qlq") // 配置掃描包 public class SpringConfig {@Bean // 通過該注解來表明是一個Bean對象,相當于xml中的<bean>public UserDao getUserDAO() {return new UserDao(); // 直接new對象做演示 }}

?

?注意:方法名是作為返回對象的名字的,因此一般不帶get,也就是上述放入spring容器的bean的name為getUserDAO

?

  2.6 ? 編寫測試方法 用于啟動Spring容器

package cn.qlq;import java.util.List;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/*** 測試類* * @author liqiang**/ public class Test {public static void main(String[] args) {// 通過Java配置來實例化Spring容器AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);// 在Spring容器中獲取Bean對象UserService userService = context.getBean(UserService.class);// 調用對象中的方法List<User> list = userService.queryUserList();for (User user : list) {System.out.println(user.getUsername() + ", " + user.getPassword() + ", " + user.getPassword());}// 銷毀該容器 context.destroy();}}

?

結果:

username_0, password_0, password_0 username_1, password_1, password_1 username_2, password_2, password_2 username_3, password_3, password_3 username_4, password_4, password_4 username_5, password_5, password_5 username_6, password_6, password_6 username_7, password_7, password_7 username_8, password_8, password_8 username_9, password_9, password_9

?

?

總結:

  從以上的示例中可以看出,使用Java代碼就完美的替代xml配置文件,并且結構更加的清晰。

?使用方法:

  Spring對Java配置的支持是由@Configuration注解和@Bean注解來實現(xiàn)的。由@Bean注解的 方法將會實例化、配置和初始化一個 新對象,這個對象將由Spring的IoC容器來管理。@Bean聲明所起到的作用與<bean/>?元素類似。被 @Configuration所注解的類則表示這個類的主要目的是作為bean定義的資源。被@Configuration聲明的類可以通過在同一個類的 內部調用@bean方法來設置嵌入bean的依賴關系。

最簡單的@Configuration?聲明類請參考下面的代碼:(放入spring的name為方法名字,因此一般不加get)

@Configuration public class AppConfig{ @Bean public MyService myService() { return new MyServiceImpl(); } }

對于上面的@Beans配置文件相同的XML配置文件如下:

<beans> <bean id="myService" class="com.somnus.services.MyServiceImpl"/> </beans>

?

上述配置方式的實例化方式如下:利用AnnotationConfigApplicationContext?類進行實例化

?

public static void main(String[] args) { ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class); MyService myService = ctx.getBean(MyService.class); myService.doStuff(); }

?

要使用組件組建掃描,僅需用@Configuration進行注解即可:

@Configuration @ComponentScan(basePackages = "com.somnus") public class AppConfig { ... }

?

?

在上面的例子中,com.acme包首先會被掃到,然后再容器內查找被@Component?聲明的類,找到后將這些類按照Sring bean定義進行注冊。

總結

以上是生活随笔為你收集整理的Spring的Java配置方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。