Предисловие:
В прошлом, когда мы строили проект, мы либо строили все пакеты в одном проекте, что было действительно удобно при обработке ссылок. Не волнуйтесь, некоторые вещи не могут быть настроены или прочитать.
Или разделить пакет на проект или подпроект. В настоящее время справочная обработка в проекте все еще немного неприятна. Тем не менее, преимущества больше, поэтому я больше не буду их выражать.
В идее рекомендуется использовать многомодульные строительные проекты вместо пути в Eclipse. Затем попробуйте разделить проект Springboot на подмодуль, чтобы увидеть, как он работает.
Разделение проекта:
1. Справочник изменений
2. родительский проект
Теоретически, родительский pom.xml должен быть ограничением ссылок на детские проекты, в основном ограничения версий.
Следовательно, в родительском pom.xm зависит управление зависимостью для ограничения версии пакета JAR в подпроекте.
Затем для ссылок, которые полезны для некоторых подпроектов, вы можете упомянуть их в родительском проекте.
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dolidayversion> 4.0.0 </modelversion> <groupid> cn.elvinle </GroupD> </artifactid> </artifactid> <sersion> 0.0.1-snapshot </version> <Cackaging> pom </packaging> <mame> parent </name> <Описание> Демо-проект для Spring Boot </description> <parent> <groupd> org.springframework.boot </GroupId> <ratifactid> spring-boot-starter-parent </artifactid> <serse> 1.9. Поиск родителя из репозитория-> </parent> <dodules> <dodule> pojo </module> <doolule> web </module> <dodule> dao </module> <dulule> service </module> <doolule> simple </module> </modules> <properties> <project.build.sourceEncoding> utf-8 </proce.bu <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> <druid.version> 1.1.3 </druid.version> <mybatis.boot.starter.version> 1.3.1 <mysql.connector.java.version> 5.1.44 </mysql.connector.java.version> </Свойства> <DepeCtedingManagement> <deyedency> <dehyed> <groupid> com.alibaba </GroupId> <strifactid> druid </artifactid> <serview> $ {druid.version aversion aversion aversion aversion aversion aversion. <groupId> org.mybatis.spring.boot </GroupId> <ArtifactId> mybatis-spring-boot-starter </artifactid> <sersive> $ {mybatis.boot.starter.version} </version> </depervice> <sedice> <groupid> mySQL </GroupId> <ratfactid> mysql-connector-java </artifactid> <sersion> $ {mysql.connector.java.version} </version> </deperence> </gespervice> </dependencymanagement> <!-Declare Depertive-> <deyeduice> <dehyedude> <groupid> org.spramework.boot </groupderies> <dehyse> <groupid> org.spramework.boot </groupdendion <ArtifactId> Spring-Boot-Starter-web </artifactId> </deployency> <Dependency> <groupId> org.springframework.boot </GroupId> <strifactid> spring-boot-starter-test </artifactid> или зависимость> </dependency> </repertaind> </build> <bricins> <groupd> или </dependency> </depertion> </build> <bricins> <groupd> или </dependency> </repertive> </build> <bricins> org.spring. <Artifactid> Spring-boot-maven-plugin </artifactid> </placin> </plugins> </build> </project>3. субпроект - pojo
3.1 pom.xml
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dolidayversion> 4.0.0 </modelversion> <parent> <groupid> cn.elvinle </GroupId> </artIdifid> <serse> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid> pojo </artifactid> <seriate> 0.0.1-snapshot </version> <cadagaging> jar </packaging> <mame> pojo </name> <distice> Demo Project for Spring boot </oppertes> <peoperties> <peat> <perive> </name> </name> <distice> demo for spring boot </opperties> <posterties> <posterties> <posterties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> UTF-8 </Project.Report.OutputEncoding> <java.version> 1.8 </java.version> </Propertes> <buld> <groupId> org.springframework.boot </GroupId> <artifactid> Spring-boot-maven-plugin </artifactid> </plugin> </plugins> </build> </project>
3.2 DB Entity
пакет cn.elvinle.pojo;/** * @author: elvin */public class user {private int id; Приватное название строки; public int getId () {return id; } public void setId (int id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; }}Для контента в Pojo и Dao вы можете использовать Mybatis Reverse Engineering для его создания, что может сэкономить много проблем.
4. субпроект-дао
4.1 Pom.xml
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dolidayversion> 4.0.0 </modelversion> <parent> <groupid> cn.elvinle </GroupId> </artIdifid> <sersion> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </groupid> <artifactid> dao </artifactid> <seriate> 0.0.1-snapshot </version> </packaging> jar </packaging> <mame> dao </name> <Описание> Demo Project for Spring Booting </description> <properties> <mame> </name> <distice> Demo for Spring Booting> <properties <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.Report.OutputEncoding> UTF-8 </Project.Report.OutputEncoding> <Java.version> 1.8 </java.version> </Properties> <seydenties> <! <groupId> cn.elvinle </GroupId> <ArtifactId> pojo </artifactid> <serse> 0.0.1-snapshot </version> </dependency> <!-Внешняя ссылка-> <!-https://mvnrepository.com/artifact/com.alibaba/druid-> <Deygy> <groupId> com.Ar <ratifactid> Druid </artifactid> </depervice> <dependency> <groupid> mysql </groupid> <artifactid> mysql-connect java </artifactid> </regepact> <dehyfact> <groupid> org.mybatis.spring.boot </artifactid> mybatispring-bootspring-bootspring-sparctring> mybatisper </depertive> </deperency> <buld> <blicins> <bricin> <groupid> org.springframework.boot </GroupId> <ratifactid> Spring-boot-maven-plugin </artifactid> </placin> </placins> </build> </project>
4.2 Mapper
Usermapper.java:
публичный интерфейс usermapper {public list <user> getall ();}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.org/dtd/mybatis-3-mapper.dtd " namespace = "cn.elvinle.dao.mapper.usermapper"> <select id = "getall" resultype = "cn.elvinle.pojo.user"> select * из пользователя </select> </mapper>
5. Подпроект-служба
5.1 pom.xml
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dolidayversion> 4.0.0 </modelversion> <parent> <groupid> cn.elvinle </GroupId> </artIdifid> <sersion> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </GroupId> <ratifactId> Service </artifactid> <serive> 0.0.1-snapshot </version> </packaging> jar </packaging> <mame> service </name> <sonsecting> Demo Project for Spring Booto Booting> <protertes> <mame> </name> <sormister> Demo для Spring Booto Booting> <pertertes> <project.build.sourceencoding> UTF-8 </project.build.sourceEncoding> <project.Report.OutputEncoding> UTF-8 </Project.Report.OutputEncoding> <java.version> 1.8 </java.version> </properties> <bery> <Groupde> <Groupd> <Groupd> <Groupde> <GroupD> <Groupder> <GroupD> <GroupD> <GroupD> <GroupD> <Groupder> <Groupder> <Groupde> <Groupde> <Groupde> <Group.> <artifactId>pojo</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> <build> <plugins> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
5.2 userservice.java
public interface userservice {public list <user> getall ();}6. Подпроект - простой
6.1 pom.xml
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dolidayversion> 4.0.0 </modelversion> <parent> <groupid> cn.elvinle </GroupId> </artIdifid> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>cn.elvinle</groupId> <artifactId>simpl</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>simpl</name> <description>Demo project for Spring Boot</description> <properties> <project.build.sourceencoding> UTF-8 </project.build.sourceEncoding> <project.Report.OutputEncoding> UTF-8 </Project.Report.OutputEncoding> <java.version> 1.8 </java.version> </properties> <bery> <Groupde> <Groupd> <Groupd> <Groupde> <GroupD> <Groupder> <GroupD> <GroupD> <GroupD> <GroupD> <Groupder> <Groupder> <Groupde> <Groupde> <Groupde> <Group.> <TrifactId> pojo </artifactid> <sersion> 0.0.1-snapshot </version> </redicency> <dependency> <groupid> cn.elvinle </GroupId> <straCactId> service </artifactid> <sersive> 0.0.1-snapshot </ression> </dependency> <depertive> <groupid> cn.el. <artifactId>dao</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependency> </dependency> </build> <plugins> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
6.2 usersImpl
@ServicePublic Class UsersImpl реализует userservice {@autowired private usermapper usermapper; @Override public list <user> getAll () {System.out.println ("usersimpl getall"); вернуть usermapper.getall (); }}7. Подпроект - Интернет
Ключевое место здесь.
7.1 pom.xml
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dolidayversion> 4.0.0 </modelversion> <parent> <groupid> cn.elvinle </GroupId> </artIdifid> <sersion> 0.0.1-snapshot </version> </parent> <groupid> cn.elvinle </GroupId> <straCactId> web </artifactid> <serive> 0.0.1-snapshot </version> </jar </packaging> <mame> web </name> <sormister> demo для Spring Bootgo Booting> <propertes> <mame> </name> <sonform> demo для Spring Bootgeporties <project.build.sourceencoding> UTF-8 </project.build.sourceEncoding> <project.Report.OutputEncoding> UTF-8 </Project.Report.OutputEncoding> <java.version> 1.8 </java.version> </properties> <bery> <Groupde> <Groupd> <Groupd> <Groupde> <GroupD> <Groupder> <GroupD> <GroupD> <GroupD> <GroupD> <Groupder> <Groupder> <Groupde> <Groupde> <Groupde> <Group.> <strifactid> simple </artifactid> <sersion> 0.0.1-snapshot </version> </redicency> </depertive> <buld> <blicins> <groupid> org.springframework.boot </GroupId> <strifactid> spring-boot-maven-progin </artifactid> </plugin> </plugins> <//build> <//build> <//build> <//build> <//build> <//build> <//build> <//build> <//build> <//build> <//build> <//build>
7.2 Application.yml
Сервер: Context-Path:/родительский порт: 8080mybatis: config-location: /mapper/*.xmlspring: DataSource: Имя пользователя: root пароль: root url: jdbc: mysql: // localhost: 3306/shop?
7.3 Контроллер
@Restcontroller @requestmapping ("api") открытый класс apicontroller {@autowired private userservice userservice; @Requestmapping ("index") public list <user> index () {list <user> all = userservice.getall (); вернуть все; }}До сих пор ничего особенного, он был изменен нормально. Далее будут отличия от тех, у кого нет модулей.
7.4 Модификация у входа
@Componentscan ({"cn.elvinle"})@springbootapplicationpublic class webapplication {public static void main (string [] args) {springApplication.run (webapplication.class, args); }}В настоящее время, если программа запускается напрямую, она не будет успешно доступна. Причина в том, что автоматическая конфигурация и создание автоматизации Mybatis не поддерживаются в нескольких модулях.
В настоящее время нам нужно вручную настроить и создать.
7.5 конфигурация Mybatis Java
<!-Mybatis Factory-> <bean id = "sqlSessionFactory"> <name = "dataSource" ref = "dataSource"/> <name = "configlocation" value = "classpath: mybatis/sqlmapconfig.xml"/> <!-Автоматическое картирование. value = "classpath: mapper /*. xml" />-> < /bean> <!-Имя пакета, где находится интерфейс DAO, Spring автоматически найдет класс под ним-> <bean id = "MappersCannerConfigurer"> <Свойство name = "basepackage" value = "cn.elvinle.byshop.mapper" /> <fthip = "value =" cn.elvinle.byshop.mapperse. value = "sqlSessionFactory"/> </bean>
Вы можете использовать конфигурацию Java для сравнения вышеуказанного файла конфигурации
Mybatisconfig:
@Configurationpublic class mybatisconfig {@value ("$ {mybatis.config-location}") частная строка mapperlocationpattern; @Bean @ConfigurationProperties (prefix = "Spring.Datasource") public DataSource dataSource () {return new com.alibaba.druid.pool.druiddatasource (); } @Bean (name = "sqlSessionFactory") public sqlSessionFactory sqlSessionFactory () throws exection {sqlSessionFactoryBean sqlSessionFactoryBean = new SQLSessionFactoryBean (); sqlSessionFactoryBean.SetDataSource (dataSource ()); Pathmatchingresourcepatternresolver resolver = new pathmatchingresourcepatternresolver (); sqlSessionFactoryBean.SetMapperLocations (rolver.getResources (mapperlocationPattern)); return sqlSessionFactoryBean.getObject (); }}MybatismapperscannerConfig:
@Configuration@autoconfigureffterter (mybatisconfig.class) @mapperscan ("cn.elvinle.dao.mapper") открытый класс mybatismapperscannerconfig {public MappersCannerConfigurer mapperScannerCure () {mapperScannerCureCurerCureCorcerCorerCureCurerCurerCurerCurerCure () {mapperScannerCureCurerCureCurerCureCurerCureCurerCureCurerCureCurerCureCurerCureCurerCorerCure MappersCannerConfigurer (); mapperscannerConfigurer.setsqlSessionFactoryBeanName ("sqlSessionFactory"); MapperScannerConfigurer.setBasePackage ("cn.elvinle.dao.mapper"); вернуть MappersCannerConfigurer; }}Хорошо, здесь вы можете запустить программу и увидеть результаты:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.