[Spring4.x]基於spring4.x純註解的非Web工程搭建

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 項目的開發。。。

截圖後面再補充,準備睡覺咯。。。

相關文章
相關標籤/搜索