I. Engineering CATALOGUE
Second, the definition of system initialization core class
1.Com.system.utils.service.SystemInitService
PackageCom.system.utils.service;ImportJavax.servlet.ServletContext;Importorg.apache.commons.lang3.StringUtils;ImportOrg.apache.log4j.Logger;ImportOrg.simpleframework.xml.Serializer;ImportOrg.simpleframework.xml.core.Persister;Importorg.springframework.beans.factory.annotation.Autowired;ImportOrg.springframework.core.io.ClassPathResource;ImportOrg.springframework.core.io.Resource;ImportOrg.springframework.stereotype.Service;ImportOrg.springframework.web.context.WebApplicationContext;Importorg.springframework.web.context.support.WebApplicationContextUtils;ImportCom.system.utils.bean.DataBaseInit;/*** Initialization of the system *@authorCarl * @date 2016-09-13*/@Service Public Abstract classSysteminitservice {Private Static FinalLogger log = Logger.getlogger (systeminitservice.class); @AutowiredPrivateIdatabaseinitservice Databaseinitservice; /*** Get Initialization interface *@paramBeanname *@paramContext*/ Public Final Static voidInitialization (FinalString Beanname,FinalServletContext context) { Try { FinalWebapplicationcontext ApplicationContext =Webapplicationcontextutils.getwebapplicationcontext (context); FinalSysteminitservice Initservice = (systeminitservice) Applicationcontext.getbean (Beanname, SystemInitService.class); Initservice.init (context); } Catch(Exception e) {log.error (E.getmessage (), E); } } /*** System Initialization Data **/ Public Abstract voidInitData (); /*** Resource Path *@return */ Public AbstractString ResourcePath (); /*** Initialize Database * *@authorCarl*/ Private voidinitdatabase () {Try { if(Stringutils.isempty (ResourcePath ())) {return; } Resource Resource=NewClasspathresource (ResourcePath ()); FinalSerializer Serializer =NewPersister (); Databaseinit Databaseinit= Serializer.read (databaseinit.class, Resource.getinputstream ()); Databaseinitservice.initdatabase (Databaseinit); } Catch(Exception e) {log.error (E.getmessage (), E); } } /*** Initialize template *@paramContext*/ Private voidInitFinalServletContext context) {System.out.println ("======================== system starts initializing ======================================="); Initdatabase (); InitData (); System.out.println ("======================== system initialization End ======================================="); }}
Systeminitservice Implementation class Com.nc.rms.service.init.CmsSystemInitServiceImpl
PackageCom.nc.rms.service.init;ImportOrg.springframework.stereotype.Service;ImportCom.system.utils.service.SystemInitService; @Service ("Cmssysteminitservice") Public classCmssysteminitserviceimplextendssysteminitservice{@Override Public voidInitData () {System.out.println ("Initializing in Progress"); } @Override PublicString ResourcePath () {return"Sql/databaseinit.xml"; }}
databaseinit.xml Database Build Table Statement Store path Create initialize build Table statement update modify database table
<?xml version= "1.0" encoding= "UTF-8"? ><databaseinit initcode= "Rms.table.version" > <create> <sqlPath>sql/rms/create_table_mysql.sql</sqlPath> <!--<procpath></procpath > </create> <update updateversion= "1.1" > <sqlpath>sql/rms/update_table_ 1.1.sql</sqlpath> </update> </databaseInit>
too many do not want to write, have a favorite friend can directly see the source code.
Http://pan.baidu.com/s/1jHAcjTO
"MyBatis Series": Springmvc+mybatis initialization table (01)