【Java】Maven模块化工程SSM整合
创建数据库一个演示表User
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(64) DEFAULT NULL,
`password` varchar(64) DEFAULT NULL,
`status` int DEFAULT '0',
`is_del` int DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai
插入数据:
insert into
`user`(`id`,`name`,`password`,`status`,`is_del`)
values
(1,'admin','admin',0,0),
(2,'user01','123456',0,0),
(3,'user02','123456',0,0),
(4,'user03','123456',0,0),
(5,'user04','123456',0,0),
(6,'user05','123456',0,0);
创建新的Maven工程,不点选任何骨架:
模块化工程,每一个结构层即一个模块,而现在这个工程的SRC可以删除:
创建最基本的三层结构:
Dao、Service、Controller
Dao和Service无骨架创建,但是控制器是视图层了,需要Web骨架搭建
构建完成发现Controller模块webapp没有被IDEA表示:
查看控制台发现:
No archetype found in remote catalog. Defaulting to internal catalog
远程骨架仓库未找到,调用的本地的
添加web:
选择控制器:
可以发现Maven指定web目录位置不存在,固然没有标记:
更改目录:
就有了:
设置Tomcat:
修复配置的工程:
启动测试:
所有依赖:
<properties>
<spring.version>5.2.8.RELEASE</spring.version>
</properties> <dependencies> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency> <!-- JDBC & DataSource --> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency> <dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency> <!-- log --> <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency> <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
</dependency> <!-- JavaWeb -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency> <dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> <dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.5</version>
</dependency> <dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.5</version>
</dependency> <!-- Mybatis --> <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency> <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.5</version>
</dependency> <!-- Spring & SpringMVC ... -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.6</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency> </dependencies>
公共依赖,实际上也可以具体的根绝结构层来区分导入,不过太麻烦,省事就直接丢总工程的POM里面
Mybatis-Spring整合:
创建User实体类:
package cn.echo42.pojo; import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor; /**
* @author DaiZhiZhou
* @file SSM-ModuleVersion-Sample
* @create 2020-08-08 9:16
*/ @Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String name;
private String password;
private Integer status;
private Integer is_del;
}
创建UserMapper接口
package cn.echo42.mapper; import cn.echo42.pojo.User; import java.util.List; /**
* @author DaiZhiZhou
* @file SSM-ModuleVersion-Sample
* @create 2020-08-08 9:20
*/
public interface UserMapper {
List<User> queryUserList();
}
先创建mybatis配置和userMapper映射器配置:
下面Spring容器XML配置后面在设置,这里还忘了DB连接配置和日志配置
Mybatis-Configuration.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <settings>
<setting name="logImpl" value="LOG4J"/>
</settings> </configuration>
仅留下日志配置选项,其他配置移交到Spring管理:
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.echo42.mapper.UserMapper"> <select id="queryUserList" resultType="cn.echo42.pojo.User">
SELECT * FROM user;
</select> </mapper>
补加日志和数据库连接:
db.properties
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sample?serverTimezone=GMT
jdbc.username=root
jdbc.password=123456
log4j.properties
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
Application-Dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
"
> <context:component-scan base-package="cn.echo42.mapper"/> <!-- Spring注册扫描 --> <context:property-placeholder location="classpath:db.properties"/> <!-- jdbc连接配置读取加载 --> <!-- Spring 数据源配置 SpringJDBC的数据源 -->
<!-- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >-->
<!-- <property name="driverClassName" value="${jdbc.driverClassName}" />-->
<!-- <property name="url" value="${jdbc.url}" />-->
<!-- <property name="username" value="${jdbc.username}" />-->
<!-- <property name="password" value="${jdbc.password}" />-->
<!-- </bean>--> <!-- Hikari数据源 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close" >
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean> <!-- 配置SqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource"/> <!-- 自动扫描mappers.xml文件 -->
<property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>
<property name="configLocation" value="classpath:mybatis/Mybatis-Configuration.xml"/>
</bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.echo42.mapper" />
<!--<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>-->
</bean> </beans>
写一个测试类看看是否正常:
import cn.echo42.mapper.UserMapper;
import cn.echo42.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /**
* @author DaiZhiZhou
* @file SSM-ModuleVersion-Sample
* @create 2020-08-08 9:37
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:Application-Dao.xml")
public class DaoTest { @Autowired
UserMapper userMapper; @Test
public void testSample() {
for (User user : userMapper.queryUserList()) {
System.out.println(user);
}
}
}
结果:
log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
User(id=1, name=admin, password=admin, status=0, is_del=0)
User(id=2, name=user01, password=123456, status=0, is_del=0)
User(id=3, name=user02, password=123456, status=0, is_del=0)
User(id=4, name=user03, password=123456, status=0, is_del=0)
User(id=5, name=user04, password=123456, status=0, is_del=0)
User(id=6, name=user05, password=123456, status=0, is_del=0) Process finished with exit code 0
日志没有配置到?【才发现少写了j...】
可以了:
INFO [main] - HikariPool-1 - Starting...
DEBUG [main] - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@59252cb6
INFO [main] - HikariPool-1 - Start completed.
DEBUG [main] - JDBC Connection [HikariProxyConnection@1643141512 wrapping com.mysql.cj.jdbc.ConnectionImpl@59252cb6] will not be managed by Spring
DEBUG [main] - ==> Preparing: SELECT * FROM user;
DEBUG [main] - ==> Parameters:
DEBUG [main] - <== Total: 6
DEBUG [HikariPool-1 housekeeper] - HikariPool-1 - Pool stats (total=1, active=1, idle=0, waiting=0)
DEBUG [main] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@194fad1]
User(id=1, name=admin, password=admin, status=0, is_del=0)
User(id=2, name=user01, password=123456, status=0, is_del=0)
User(id=3, name=user02, password=123456, status=0, is_del=0)
User(id=4, name=user03, password=123456, status=0, is_del=0)
User(id=5, name=user04, password=123456, status=0, is_del=0)
User(id=6, name=user05, password=123456, status=0, is_del=0)
结合Service业务层:
首先在业务层的Pom.xml中导入Dao层:
这样来自dao层的userMapper就可以被service层调用
<dependencies>
<dependency>
<groupId>cn.echo42</groupId>
<artifactId>Application-Dao</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
编写接口和实现类:
UserService接口:
package cn.echo42.service; import cn.echo42.pojo.User; import java.util.List; /**
* @author DaiZhiZhou
* @file SSM
* @create 2020-08-07 14:21
*/
public interface UserService {
List<User> getUserList();
}
UserServiceImpl接口实现:
package cn.echo42.service.impl; import cn.echo42.mapper.UserMapper;
import cn.echo42.pojo.User;
import cn.echo42.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; /**
* @author DaiZhiZhou
* @file SSM-ModuleVersion-Sample
* @create 2020-08-08 9:51
*/ @Service("userService")
public class UserServiceImpl implements UserService { @Autowired
UserMapper userMapper; public List<User> getUserList() {
return userMapper.queryUserList();
}
}
业务层的配置主要是扫描包,和事务配置,这里就不编写事务配置了
Application-Service.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
"
> <context:component-scan base-package="cn.echo42.service" /> </beans>
业务层测试类
注意我们的容器配置导入,是两个,一个dao一个Service,或者也可以使用import标签和并
import cn.echo42.pojo.User;
import cn.echo42.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /**
* @author DaiZhiZhou
* @file SSM-ModuleVersion-Sample
* @create 2020-08-08 9:56
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:Application-Dao.xml", "classpath:Application-Service.xml"})
public class ServiceTest { @Autowired
UserService userService; @Test
public void testSample() {
for (User user : userService.getUserList()) System.out.println(user);
}
}
测试结果正常输出:
INFO [main] - HikariPool-1 - Starting...
DEBUG [main] - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@753432a2
INFO [main] - HikariPool-1 - Start completed.
DEBUG [main] - JDBC Connection [HikariProxyConnection@923083575 wrapping com.mysql.cj.jdbc.ConnectionImpl@753432a2] will not be managed by Spring
DEBUG [main] - ==> Preparing: SELECT * FROM user;
DEBUG [main] - ==> Parameters:
DEBUG [main] - <== Total: 6
DEBUG [HikariPool-1 housekeeper] - HikariPool-1 - Pool stats (total=1, active=1, idle=0, waiting=0)
DEBUG [main] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2f953efd]
User(id=1, name=admin, password=admin, status=0, is_del=0)
User(id=2, name=user01, password=123456, status=0, is_del=0)
User(id=3, name=user02, password=123456, status=0, is_del=0)
User(id=4, name=user03, password=123456, status=0, is_del=0)
User(id=5, name=user04, password=123456, status=0, is_del=0)
User(id=6, name=user05, password=123456, status=0, is_del=0)
SpringMVC整合:
首先由Maven骨架创建Web工程没有提供源码和资源两个目录:
我们需要手动创建:
导入上一级Service业务层:
<dependencies>
<dependency>
<groupId>cn.echo42</groupId>
<artifactId>Application-Service</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
Application-Controller.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
"
> <context:component-scan base-package="cn.echo42.controller" /> <!-- 控制器注册扫描 --> <mvc:default-servlet-handler/> <!-- 静态资源过滤器 --> <mvc:annotation-driven /> <!-- 注解驱动 --> <!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀,这里是请求的路径文件 -->
<property name="prefix" value="/WEB-INF/view/" />
<!-- 后缀 ,支持.jsp的请求-->
<property name="suffix" value=".jsp" />
</bean> <import resource="Application-Dao.xml"/> <!-- 合并导入前2层的容器XML配置 -->
<import resource="Application-Service.xml"/> </beans>
Web.xml配置
导入Controller.xml用以加载
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>Archetype Created Web Application</display-name> <servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:Application-Controller.xml</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> </web-app>
UserController编写:
package cn.echo42.controller; import cn.echo42.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.Map; /**
* @author DaiZhiZhou
* @file SSM-ModuleVersion-Sample
* @create 2020-08-08 10:02
*/ @Controller
@RequestMapping("/user")
public class UserController { @Autowired
UserService userService; @GetMapping("/list")
public String toUserListPage(Map<String,Object> map) {
map.put("message", "Hello SSM module Sample!!!");
map.put("userList", userService.getUserList());
return "user/list";
} }
编写页面:
jsp代码:list.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: User-Dai
Date: 2020/8/8
Time: 10:12
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>用户列表</title>
</head>
<body> <table width="100%" border="1px"> <caption><h3>${message}</h3></caption> <thead>
<tr>
<th>编号</th>
<th>名称</th>
<th>密码</th>
<th>状态</th>
<th>标记删除</th>
</tr>
</thead> <tbody>
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.password}</td>
<td>${user.status}</td>
<td>${user.is_del}</td>
</tr>
</c:forEach>
</tbody> </table> </body>
</html>
访问:
http://localhost:8080/user/list
【Java】Maven模块化工程SSM整合的更多相关文章
- IDEA 创建JAVA Maven Web 工程
转载自https://www.cnblogs.com/1314wamm/p/7475771.html 步骤一:首先先创建一个project,上次我说过了创建一个project就是一个工作空间,在这里就 ...
- Java+Maven的工程运行Sonar的方式
step 1:在maven->setting.xml中进行配置 修改mvn工程所用的setting.xml文件,在<profiles></profiles>节点中增加: ...
- IDEA 创建JAVA Maven Web 工程 不能建Sevlet文件
JAVA目录下建包而不是文件夹 需要添加依赖 <dependency> <groupId>javax.servlet</groupId> <artifactI ...
- SSM整合详解
1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One ...
- SSM整合pom.xml和导包
SSM 整合-自己写的 SSM Spring +SpringMVC+Mybatis 配置 及pom.xml SSM框架(spring+springMVC+Mybatis) pom.xml文件 mave ...
- 基于Maven的SSM整合的web工程
此文章主要有以下几个知识点: 一.如何创建 Maven的Web 工程 二.整合SSM(Spring,SpringMvc,Mybatis),包括所有的配置文件 三.用 mybatis 逆向工程生成对应的 ...
- 使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
- 【转载】使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
- SSM整合(Maven工程)
SSM整合(Maven工程) 一.概述 SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容 ...
- 基于dubbo的SSM(Spring,SpringMvc,Mybatis)整合的Maven多工程(下)
上篇是SSM的maven单工程(http://www.cnblogs.com/yuanjava/p/6748956.html).中篇是 SSM的maven多工程(http://www.cnblogs. ...
随机推荐
- bpmn.js
在 BPMN.js 中,$inject 属性通常用于声明依赖注入的模块列表.这些模块会在创建对象实例时由依赖注入框架(如 AngularJS)提供.以下是在 BPMN.js 中常见的一些 $injec ...
- Thread.sleep 延时查询或延时查询前更新es缓存数据
Thread.sleep 延时查询或延时查询前更新es缓存数据 MQ消息的顺序性,或发送MQ的发送端未严格事务处理,可能存在数据未落库的情况,而导致接收端处理MQ消息的时候,查询为空. //demo1 ...
- 盘点 Spring Boot 解决跨域请求的几种办法
熟悉 web 系统开发的同学,对下面这样的错误应该不会太陌生. 之所以会出现这个错误,是因为浏览器出于安全的考虑,采用同源策略的控制,防止当前站点恶意攻击 web 服务器盗取数据. 01.什么是跨域请 ...
- 使用Microsoft.SemanticKernel基于本地运行的Ollama大语言模型实现Agent调用函数
大语言模型的发展日新月异,记得在去年这个时候,函数调用还是gpt-4的专属.到今年本地运行的大模型无论是推理能力还是文本的输出质量都已经非常接近gpt-4了.而在去年gpt-4尚未发布函数调用时,智能 ...
- Go1.13的坑:无法结束Goroutine
背景 本人作为一名SRE,想用Go模拟Cpu占用100% 1秒钟,但是在Go1.13上遇到了问题,1s后Goroutine不会停止. 只要用了for{},Goroutine就无法结束,即使主Gorou ...
- Android在init.rc中自定义开机启动进程(service)
Android在init.rc中自定义开机启动进程(service) 原文链接:Android如何配置init.rc中的开机启动进程(service)(有删改) 前言 首先我先来解释一下本文到底讲什么 ...
- 通过 hexo 生成静态博客
通过 hexo 生成静态博客 背景 在对比了很多博客网站以后,我决定开始慢慢迁移我的文章,以后有时间的话还会搭建自己的网站,目前主流的静态博客生成器有三个: jekyll, hexo, hugo. 静 ...
- 国产化率100%!全志科技A40i工业核心板规格书资料分享
1.核心板简介 创龙科技SOM-TLA40i是一款基于全志科技A40i处理器设计的4核ARM Cortex-A7国产工业核心板,每核主频高达1.2GHz. 核心板通过邮票孔连接方式引出CSI.TVIN ...
- Java 集合框架Collection
集合容器主要用于保存对象,主要分类有三种List.Set.Map List有序.可重复的集合 常见的List有ArrayList.Vector.LinkedList等类 Set无序.不可重复 常见Se ...
- Spring Cloud提供者actuator依赖
<!-- actuator依赖 --> <dependency> <groupId>org.springframework.boot</groupId> ...