你可以直接依赖 AJ 的 Maven(参见《安装》),不过更推荐通过父 pom.xml 依赖方式整合,包含 MySQL 驱动、Tomcat、Spring 等的依赖。
如下是一个 pom.xml 的例子,使用了 aj-common-parent 的 1.7
版本。整个工程的结构跟普通的 Spring Boot
一样,都是main()
函数启动。你需要在节点project.mainClass
指定项目主类运行入口,也就是main()
函数所在的类。
4.0.0 com.ajaxjs aj-common-parent 1.7 aj-iam-server 1.0 AJ-IAM Server jar com.ajaxjs.iam.server.IamServerApp org.springframework.data spring-data-redis 2.6.10
在资源目录中安排 application.yml 文件,内容如下:
server: port: 8888 # 端口号 context-path: /iam # 项目名,如果不设定,默认是 / localFileUpload: false # 是否支持本地文件上传
代码结构按照惯常开发的模式即可。必须要有启动类和相关的配置类。
main()
函数内的start()
必须传入配置类参数;指定@ComponentScan
扫描包的范围。
import com.ajaxjs.embeded_tomcat.EmbeddedTomcatStarter; import com.ajaxjs.framework.BaseWebMvcConfigure; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @Configuration @EnableWebMvc @ComponentScan({"com.foo"}) public class FooApplication extends BaseWebMvcConfigure { public static void main(String[] args) { EmbeddedTomcatStarter.start(FooApplication.class); // FooApplication 本身为配置类 } }
BaseApplication 配置类为:
import com.ajaxjs.data.jdbc_helper.JdbcConn; import com.ajaxjs.data.jdbc_helper.JdbcWriter; import com.ajaxjs.iam.resource_server.UserInterceptor; import com.ajaxjs.util.logger.LogHelper; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; import org.springframework.util.StringUtils; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import javax.sql.DataSource; /** * 程序配置 */ @Configuration public class FooConfig implements WebMvcConfigurer { @Value("${db.url}") private String url; @Value("${db.user}") private String user; @Value("${db.psw}") private String psw; @Bean(value = "dataSource", destroyMethod = "close") DataSource getDs() { return JdbcConn.setupJdbcPool("com.mysql.cj.jdbc.Driver", url, user, psw); } } }
如果你不采用 application.yml 配置文件,那么使用 Java 配置亦可。
public static void main(String[] args) { TomcatConfig cfg = new TomcatConfig(); cfg.setEnableJsp(true); cfg.setPort(8080); cfg.setContextPath("/bar"); new EmbeddedTomcatStarter(cfg, new Class[]{FooApplication.class}).start(); }
在实际使用环境中,我们同一个应用环境可能需要在不同环境运行(开发、测试、生产等),每个环境的参数都有可能不同(连接参数、日志级别等),使用 profiles 可以将不同环境下的参数进行拆分,并指定加载。
IDEA 配置,在 src 目录下创建 profiles 目录,安排如下图的配置文件。
要选择哪个 profile,在 IDEA 里面选 Maven Profile 打勾即可。