新建公共模块-server
将system的domain、mapper、service还有resources下的mapper都拷贝过来,并修改一下报错的地方。
package com.dog.server.domain;
public class Test {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.dog.server.mapper;
import com.dog.server.domain.Test;
import java.util.List;
public interface TestMapper {
public List<Test> list();
}
package com.dog.server.service;
import com.dog.server.domain.Test;
import com.dog.server.mapper.TestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TestService {
@Autowired(required = false)
private TestMapper testMapper;
public List<Test> list() {
return testMapper.list();
}
}
<?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="com.dog.server.mapper.TestMapper" >
<select id="list" resultType="com.dog.server.domain.Test">
select `id`, `name` from `test`
</select>
</mapper>
server模块加入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 集成mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 热部署DevTools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
server模块的依赖和原来system的依赖基本一样,只是比system模块少了这个依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
system集成server模块
总项目的pom文件加入server依赖
<dependency>
<groupId>com.lucky</groupId>
<artifactId>server</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
system模块里的pom加入server依赖(去版本的)
<dependency>
<groupId>com.lucky</groupId>
<artifactId>server</artifactId>
</dependency>
修改system启动类
package com.dog.system;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.env.Environment;
@SpringBootApplication
@EnableEurekaClient
@ComponentScan("com.dog")
@MapperScan("com.dog.server.mapper")
public class SystemApplication {
private static final Logger LOG = LoggerFactory.getLogger(SystemApplication.class);
public static void main(String[] args) {
SpringApplication app = new SpringApplication(SystemApplication.class);
Environment env = app.run(args).getEnvironment();
LOG.info("启动成功!!");
LOG.info("System地址: \thttp://127.0.0.1:{}", env.getProperty("server.port"));
}
}
这里的@ComponentScan("com.dog")
一定不要写成@Component("com.dog")
不然会报这个错
然后搜了一下这两个注解的区别
——————————————————————
修改system里的controller
package com.dog.system.controller;
import com.dog.server.domain.Test;
import com.dog.server.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class TestController {
@Autowired(required = false)
private TestService testService;
@RequestMapping("/test")
public List<Test> test() {
return testService.list();
}
}
这里的@Autowired(required = false)
可以写成@Resource
,有的版本的idea会在加了@Resource
的地方,出现红色波浪线,但不影响运行。
将通用的配置移动到server
system的配置文件只留这些
其余的复制到server的recourses下的config文件夹里
# 增加数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/icourse?characterEncoding=UTF8&autoReconnect=true
spring.datasource.username=icourse
spring.datasource.password=icourse
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.mapper-locations=classpath:/mapper/*.xml
logging.level.com.dog.system.mapper=trace
system的启动类也放在一个config文件夹里
这样就OK了。