Spring框架一直以來是Java開發中的耀眼明星,其IOC/AOP能夠大大下降代碼的耦合度,但低版本中的xml配置繁雜也讓不少人詬病;java
Spring4.x以上已經提倡基於註解的開發模式,在非Web項目中,"基於spring純註解方式如何開發?"就是本文要說明的內容,且看下文:web
下面基於Eclipse Oxygen版本,開發一個普通的Java工程,演示以下:spring
1. 基於 maven-archetype-quickstart 骨架 建立一個普通的Maven工程:json
2. 在pom.xml中加入spring、logback及經常使用jar包的依賴:springboot
3. 在src/main/resources下建立 application.properties、logback.xml、assembly.xml 等配置文件app
4. 在Java 代碼中建立 @Configuration、@PropertySource 類用於加載配置框架
package com.morpheus.cmdline.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; @Configuration @PropertySource(value = "classpath:application.properties", ignoreResourceNotFound = false, encoding = "UTF-8") public class AppConfiguration { @Value("${cmd.decrypt.key}") private String decryptKey = null; @Value("${cmd.encrypt.key}") private String encryptKey = null; public AppConfiguration() { } public String getDecryptKey() { return decryptKey; } public String getEncryptKey() { return encryptKey; } }
5. 在Java 代碼中編寫 @Component、@Service 等基本組件類maven
6. 在Java 代碼中使用 @Autowired、@Resource 等注入依賴Beanui
7. 在Java 代碼中使用 @Value 等注入配置值spa
8. 在主入口類中使用 AnnotationConfigApplicationContext 類啓動 spring容器,並經過 getBean() 方法獲取須要執行的Bean
package com.morpheus.cmdline; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import com.alibaba.fastjson.JSONObject; import com.morpheus.cmdline.cmd.CmdInvoker; /** * 普通Java應用(非web)入口類 */ public class Application { public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext("com.morpheus.cmdline"); try { CmdInvoker cmdInvoker = (CmdInvoker) applicationContext.getBean("cmdInvoker"); JSONObject resJSON = cmdInvoker.invoke(args); System.out.println(resJSON); } catch (Throwable th) { th.printStackTrace(); } finally { applicationContext.close(); } } }
9. 使用 maven-jar-plugin、 maven-dependency-plugin 打包項目爲可執行的jar包
java %JVM_OPTS% -jar CmdLine.jar
就能夠執行咯
10. 使用 maven-assembly-plugin 打包項目爲可部署的zip包
而後就萬事大吉了,能夠看到在本項目中不使用任何一個 spring 的xml配置,所有基於註解方式;
在以上步驟開發中,除了第 8 步驟以外,其餘步驟一樣適用於 springboot 項目的開發。。。
截圖後面再補充,準備睡覺咯。。。