【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. ...
随机推荐
- [SWPUCTF 2021 新生赛]easy_sql
这道题呢就是很简单的sql注入,我们直接用sqlmap来跑. 首先我们打开页面可以看见提示,参数为wllm **然后我们启动虚拟机,输入sqlmap的命令:sqlmap -u "url地址/ ...
- ConfigurationManager 读取的不是最新值
用 ConfigurationManager 修改配置后,ConfigurationManager 读取的不是最新值. 解决方法: 第一种: ConfigurationManager.RefreshS ...
- CICD介绍
1.学习背景 当公司的服务器架构越来越复杂,需要频繁的发布新配置文件,以及新代码: 但是如果机器部署数量较多,发布的效率必然很低: 并且如果代码没有经过测试环境,预生产环境层层测试,最终才到生产环境, ...
- MAPJOIN中无法使用UDF
今天在写SQL时,遇到了一个异常,提示semantic exception generate map join error unable to find class,udf编写的没毛病,其他SQL也有 ...
- [踩坑记录] Vue3 customRef 传入对象没有进入set方法
问题描述 学习Vue3 Ref 相关 API 的时候,遇到了 customRef 这个 API,它可以让我们自定义 ref 的更新的过程 但是使用 customRef 有一个问题就是,如果你传入的是初 ...
- elasticsearch-head插件安装及启动,关闭命令
启动插件 /elasticsearch-head目录npm run start启动elasticsearch 不能使用root账号 切换账号:su es./bin/elasticsearch 打印日志 ...
- LLM学习笔记
1. 评估榜单 1.1. C-Eval C-Eval 是一个全面的中文基础模型评估套件.它包含了13948个多项选择题,涵盖了52个不同的学科和四个难度级别. https://cevalbenchma ...
- 集成学习与随机森林(四)Boosting与Stacking
Boosting Boosting(原先称为hypothesis boosting),指的是能够将多个弱学习器结合在一起的任何集成方法.对于大部分boosting方法来说,它们常规的做法是:按顺序训练 ...
- Android 编译系统 defconfig文件的确定
Android 编译系统 defconfig文件的确定 背景 经常在驱动改动的时候,同时改动2个文件,才知道他们分别对应不同的编译结果. 路径 对应版本 kernel/msm-4.4/arch/arm ...
- Oracle自动化编译无效对象
问题描述:使用存储过程的方式对oracle数据库的无效对象,如视图或者同义词进行定期的编译,让他变成一个有效的对象,加上定时任务可以实现自动化的处理.同时在数据库内部创建一个记录表,用来记录被编译过的 ...