视频地址: https://www.bilibili.com/video/av44673048
功能特点:
基本命令:
坐标:
排除依赖:
cn.missbe.web.search
resource-search
pom
1.0-SNAPSHOT
依赖范围scope:
依赖冲突:
聚合:
概念
将多个项目同时运行,即所有项目同时进行install、packet等命令,不需要根据依赖关系必须先运行依赖的项目
实现
使用module标签
../bean
../common
../web
../manager-api
../manager-impl
../potal-api
../potal-impl
继承:
概念
在聚合多个项目时,如果这些被聚合的项目中需要引入相同的Jar,那么可以将这些Jar写入父pom中,各个子项目继承该pom即可
实现
父工程统一管理jar包,打包方式必须为pom。小技巧:可以使用properties标签进行同一版本管理
com.itstudy
parent
1.0-SNAPSHOT
pom
使用dependencyManagement 标签对所有依赖进行管理
javax.servlet
servlet-api
2.5
provided
<!-- 省略 ... -- >
子工程只需使用parent标签声明父工程,后引用父工程依赖即可,不需要带version。注意:web工程打包方式为war,其它工程打包方式为jar。不需要带version
parent
com.itstudy
1.0-SNAPSHOT
../parent/pom.xml
4.0.0
manager-api
jar
javax.servlet
servlet-api
<!-- 省略 ... -- >
parent - 父工程 :聚合其它工程(打包方式为: war)
web - web工程:存放所有页面,框架配置文件(jar)
manager -impl:后台管理系统,存放控制器类,业务层实现类(jar)
manager-api 后台管理系统,存放业务层接口和DAO层接口(jar)
potal-impl 前台系统,存放控制器类,业务层实现类(jar)
potal-api 前台系统,存放业务层接口和DAO层接口(jar)
common 存放所有模块所需要的公共类(jar)
bean 存放所有模块的实体类(jar)
实例:由图项目manager-api依赖项目bean和项目common(依赖谁就将谁的坐标放在pom文件)
com.itstudy
bean
1.0-SNAPSHOT
com.itstudy
common
1.0-SNAPSHOT
crw
contextConfigLocation
classpath*:spring/spring-*.xml
org.springframework.web.context.ContextLoaderListener
encoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encoding
/*
HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter
HiddenHttpMethodFilter
springmvc
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/springmvc-context.xml
1
springmvc
*.htm
*.do
60
index.jsp
log4j:
# ##设置日志级别
# log4j.rootLogger=info,debug,CONSOLE,file
log4j.rootLogger=debug,CONSOLE,file
# ## 指定输出信息到控制台
log4j.addivity.org.apache=true
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# thread属性,指定日志level.根据日志的重要程度,可以分为off,fatal,error,warn,info,debug。
log4j.appender.CONSOLE.Threshold=info
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding= UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.appender1.MaxFileSize=100KB
# ##输出Debug级别以上的日志到log文件夹下。
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyyMMdd
log4j.appender.file.File=../logs/teachingManagementService.log
# 每天的日志打印就不需要设置大小属性
# log4j.appender.file.MaxFileSize=20MB
# log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%X{uuid}] [%X{ip}] [%X{userId}] %-5p %l - %m%n
log4j.logger.com.alibaba.dubbo=error
springmvc-context.xml:
application/json;charset=UTF-8
error/error
spring-context.xml
classpath*:mybatis/mapper-*.xml
mybatis-config.xml:
jdbc.properties:
jdbc.user=root
jdbc.password=123456
jdbc.url=jdbc:mysql://192.168.0.105:3306/2019-8-04?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8
jdbc.driver=com.mysql.jdbc.Driver
在manger-api和manger-impl工程中按如图所示构建
TestDao:
package com.itstudy.crw.manager.dao;
import org.springframework.stereotype.Repository;
import java.util.Map;
@Repository
public interface TestDao {
public void insert(Map map);
}
TestService:
package com.itstudy.crw.manager.service;
public interface TestService {
public void insert();
}
TestController:
package com.itstudy.crw.manager.controller;
import com.itstudy.crw.manager.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@Autowired
private TestService testService;
@RequestMapping("/test")
public String test(){
testService.insert();
System.out.println("testController执行了");
return "success";
}
}
TestServiceImpl:
package com.itstudy.crw.manager.serviceImpl;
import com.itstudy.crw.manager.dao.TestDao;
import com.itstudy.crw.manager.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
public class TestServiceImpl implements TestService {
@Autowired
private TestDao testDao;
public void insert() {
Map map = new HashMap();
map.put("name","lisi");
testDao.insert(map);
}
}
mapper-user.xml:
insert into t_student (
name
) values (
#{name}
)