[Spring4.x]基于spring4.x纯注解的非Web工程搭建

亡梦爱人 提交于 2019-11-29 14:59:41

Spring框架一直以来是Java开发中的耀眼明星,其IOC/AOP可以大大降低代码的耦合度,但低版本中的xml配置繁杂也让很多人诟病;

Spring4.x以上已经提倡基于注解的开发模式,在非Web项目中,"基于spring纯注解方式如何开发?"就是本文要说明的内容,且看下文:

下面基于Eclipse Oxygen版本,开发一个普通的Java工程,演示如下:

1. 基于 maven-archetype-quickstart 骨架 创建一个普通的Maven工程:

2. 在pom.xml中加入spring、logback及常用jar包的依赖:

3. 在src/main/resources下创建 application.properties、logback.xml、assembly.xml 等配置文件

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 等基本组件类

6. 在Java 代码中使用 @Autowired、@Resource 等注入依赖Bean

7. 在Java 代码中使用 @Value 等注入配置值

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 项目的开发。。。

截图后面再补充,准备睡觉咯。。。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!