business-config.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">
<!-- Enables scanning for @Service and @Repository annotations -->
<context:component-scan
base-package="br.com.netsoft.servico,br.com.netsoft.repositorio" />
<!-- Import the data source definition -->
<import resource="datasource-config.xml" />
</beans>
datasource-config.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">
<!-- JPA EntityManagerFactory -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
<property name="persistenceUnitName" value="nota-fiscal-servico-web" />
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
<property name="jpaDialect" ref="jpaDialect" />
</bean>
<bean id="jpaVendorAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<!-- <property name="database" value="MYSQL" /> -->
<property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="showSql" value="true" />
</bean>
<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
<property name="dataSource" ref="dataSource" />
<property name="jpaDialect" ref="jpaDialect" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/prefeitura" />
<property name="username" value="postgres" />
<property name="password" value="63Netsis417" />
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
mvc-core-config.xml
<!-- <import resource="classpath:dandelion-datatables.xml" /> -->
<mvc:annotation-driven />
<context:component-scan base-package="br.com.netsoft.controller" />
<!-- <mvc:default-servlet-handler /> -->
<import resource="mvc-view-config.xml" />
</beans>
mvc-view-config.xml
<?xml version="1.0" encoding="UTF-8"?><bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
<!-- Template cache is true by default. Set to false if you want -->
<!-- templates to be automatically updated when modified. -->
<property name="cacheable" value="false" />
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
<property name="additionalDialects">
<set>
<bean class="com.github.dandelion.thymeleaf.dialect.DandelionDialect" />
<bean
class="com.github.dandelion.datatables.thymeleaf.dialect.DataTablesDialect" />
</set>
</property>
</bean>
<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine" />
</bean>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<!-- Spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/business-config.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<description>Spring Loader</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring MVC servlet definition and mapping -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/mvc-core-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Dandelion servlet definition and mapping -->
<servlet>
<servlet-name>dandelionServlet</servlet-name>
<servlet-class>com.github.dandelion.core.web.DandelionServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dandelionServlet</servlet-name>
<url-pattern>/dandelion-assets/*</url-pattern>
</servlet-mapping>
<!-- Dandelion filter definition and mapping -->
<filter>
<filter-name>dandelionFilter</filter-name>
<filter-class>com.github.dandelion.core.web.DandelionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>dandelionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Dandelion-Datatables filter, used for basic export -->
<filter>
<filter-name>datatables</filter-name>
<filter-class>com.github.dandelion.datatables.core.web.filter.DatatablesFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>datatables</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- <welcome-file-list> -->
<!-- <welcome-file>index.htm</welcome-file> -->
<!-- </welcome-file-list> -->
</web-app>
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="nota-fiscal-servico-web"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- Endereço -->
<class>br.com.netsoft.model.endereco.BairroEntity</class>
<class>br.com.netsoft.model.endereco.EstadoEntity</class>
<class>br.com.netsoft.model.endereco.LogradouroEntity</class>
<class>br.com.netsoft.model.endereco.MunicipioEntity</class>
<class>br.com.netsoft.model.endereco.PaisEntity</class>
<class>br.com.netsoft.model.endereco.TipoLogradouroEntity</class>
<class>br.com.netsoft.model.endereco.ViewEnderecoCepEntity</class>
<!-- nota fiscal -->
<class>br.com.netsoft.model.notafiscal.NotaFiscalAlteracaoNumeroEntity</class>
<class>br.com.netsoft.model.notafiscal.NotaFiscalArquivoEntity</class>
<class>br.com.netsoft.model.notafiscal.NotaFiscalConstrucaoCivilEntity</class>
<class>br.com.netsoft.model.notafiscal.NotaFiscalDadoEntity</class>
<class>br.com.netsoft.model.notafiscal.NotaFiscalEnderecoEntity</class>
<class>br.com.netsoft.model.notafiscal.NotaFiscalEntity</class>
<class>br.com.netsoft.model.notafiscal.NotaFiscalGuiaEntity</class>
<class>br.com.netsoft.model.notafiscal.NotaFiscalIdentificacaoServicoEntity</class>
<class>br.com.netsoft.model.notafiscal.NotaFiscalValorEntity</class>
<!-- notafiscal servico -->
<class>br.com.netsoft.model.notafiscalservico.CnaeSubCodigoEntity</class>
<class>br.com.netsoft.model.notafiscalservico.CodigoEntity</class>
<class>br.com.netsoft.model.notafiscalservico.ConfiguracaoNFSeEntity</class>
<class>br.com.netsoft.model.notafiscalservico.CreditoEntity</class>
<class>br.com.netsoft.model.notafiscalservico.DenunciaConversaEntity</class>
<class>br.com.netsoft.model.notafiscalservico.DenunciaEntity</class>
<class>br.com.netsoft.model.notafiscalservico.ErroAlertaEntity</class>
<class>br.com.netsoft.model.notafiscalservico.PerguntaFrequenteEntity</class>
<class>br.com.netsoft.model.notafiscalservico.PerguntaRespostaFrequenteEntity</class>
<class>br.com.netsoft.model.notafiscalservico.PerguntaRespostaFrequenteVotacaoEntity</class>
<class>br.com.netsoft.model.notafiscalservico.PessoaContadorEntity</class>
<class>br.com.netsoft.model.notafiscalservico.PessoaLiberarCancelarNFSeEntity</class>
<class>br.com.netsoft.model.notafiscalservico.PorcentagemReterEntity</class>
<class>br.com.netsoft.model.notafiscalservico.ServicoEntity</class>
<class>br.com.netsoft.model.notafiscalservico.SubCodigoEntity</class>
<class>br.com.netsoft.model.notafiscalservico.TipoCancelamentoEntity</class>
<class>br.com.netsoft.model.notafiscalservico.TipoCreditoEntity</class>
<!-- todos -->
<class>br.com.netsoft.model.todos.AtualizacaoMonetariaEntity</class>
<class>br.com.netsoft.model.todos.AtualizacaoMonetariaItemEntity</class>
<class>br.com.netsoft.model.todos.CnaeEntity</class>
<class>br.com.netsoft.model.todos.CompetenciaEntity</class>
<class>br.com.netsoft.model.todos.EnderecoEntity</class>
<class>br.com.netsoft.model.todos.EntidadeEmailConfiguracaoEntity</class>
<class>br.com.netsoft.model.todos.EntidadeEnderecoEntity</class>
<class>br.com.netsoft.model.todos.EntidadeEntity</class>
<class>br.com.netsoft.model.todos.GuiaEntity</class>
<class>br.com.netsoft.model.todos.NaturezaOperacaoEntity</class>
<class>br.com.netsoft.model.todos.PessoaEnderecoEntity</class>
<class>br.com.netsoft.model.todos.PessoaEntidadeEntity</class>
<class>br.com.netsoft.model.todos.PessoaEntity</class>
<class>br.com.netsoft.model.todos.PessoaTipoPessoaEntity</class>
<class>br.com.netsoft.model.todos.PessoaUsuarioEntity</class>
<class>br.com.netsoft.model.todos.ReceitaEntity</class>
<class>br.com.netsoft.model.todos.RegimeTributacaoEntity</class>
<!-- usuario -->
<class>br.com.netsoft.model.usuario.GrupoEntity</class>
<class>br.com.netsoft.model.usuario.SistemaEntity</class>
<class>br.com.netsoft.model.usuario.UsuarioEntidadeEntity</class>
<class>br.com.netsoft.model.usuario.UsuarioEntity</class>
<class>br.com.netsoft.model.usuario.UsuarioEntradaSaidaEntity</class>
<class>br.com.netsoft.model.usuario.UsuarioGrupoSistemaEntity</class>
<class>br.com.netsoft.model.usuario.UsuarioLogEntity</class>
</persistence-unit>
</persistence>
pom.xml
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.netsoft</groupId>
<artifactId>nota-fiscal-servico-web</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- false - não precisa de XML -->
<failOnMissingWebXml>false</failOnMissingWebXml>
<java.version>1.8</java.version>
<maven-compiler-pluging.version>3.2</maven-compiler-pluging.version>
<flyway-maven-plugin.version>4.0.2</flyway-maven-plugin.version>
<mysql-connector-java.version>5.1.39</mysql-connector-java.version> <!-- Usar também 5.1.12 (Atual 5.1.39) -->
<!-- Spring MVC -->
<spring-framework.version>4.3.5.RELEASE</spring-framework.version>
<!-- Servlet API -->
<servlet.version>3.1.0</servlet.version>
<!-- Thymeleaf -->
<thymeleaf.version>3.0.3.RELEASE</thymeleaf.version>
<!-- Bean Validation / Hibernate Validator -->
<hibernate-validator.version>5.2.4.Final</hibernate-validator.version>
<!-- Thymeleaf - Layout Dialect -->
<thymeleaf-layout-dialect.version>2.1.2</thymeleaf-layout-dialect.version>
<!-- Logging -->
<log4j.version>2.6</log4j.version>
<jcl-over-slf4j.version>1.7.21</jcl-over-slf4j.version>
<!-- JPA / Hibernate -->
<hibernate.version>5.1.0.Final</hibernate.version>
<!-- Spring Data JPA -->
<spring-data-jpa.version>1.10.2.RELEASE</spring-data-jpa.version>
<!-- Jackson - JSON -->
<jackson-core.version>2.8.5</jackson-core.version>
<!-- thumbnailator - Gerar Thumbnail -->
<!-- https://github.com/coobird/thumbnailator -->
<thumbnailator.version>0.4.8</thumbnailator.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring-framework.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Dandelion-DataTables -->
<dependency>
<groupId>com.github.dandelion</groupId>
<artifactId>datatables-thymeleaf</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.github.dandelion</groupId>
<artifactId>datatables-spring3</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<!-- <scope>compile</scope> -->
<!-- <exclusions> -->
<!-- <exclusion> -->
<!-- <groupId>commons-logging</groupId> -->
<!-- <artifactId>commons-logging</artifactId> -->
<!-- </exclusion> -->
<!-- </exclusions> -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>${spring-data-jpa.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<!-- Spring security -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<!-- Servlet API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>
<!-- Thymeleaf -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>${thymeleaf.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring4</artifactId>
<version>${thymeleaf.version}</version>
<scope>compile</scope>
</dependency>
<!-- Bean Validation / Hibernate Validator -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate-validator.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.5.Final</version>
</dependency>
<!-- Thymeleaf - Layout Dialect -->
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
<version>${thymeleaf-layout-dialect.version}</version>
</dependency>
<!-- Thymeleaf - extras -->
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<!-- webjars -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>webjars-locator</artifactId>
<version>0.32</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>font-awesome</artifactId>
<version>4.5.0</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${jcl-over-slf4j.version}</version>
</dependency>
<!-- JPA / Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
<scope>compile</scope>
</dependency>
<!-- Hibernate - Java 8 support -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>${hibernate.version}</version>
<scope>compile</scope>
</dependency>
<!-- Postgres Driver -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Jackson - JSON -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-core.version}</version>
<scope>compile</scope>
</dependency>
<!-- thumbnailator - Gerar Thumbnail -->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>${thumbnailator.version}</version>
<scope>compile</scope>
</dependency>
<!-- Métodos uteis para manipulação de String, métodos e etc -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.13</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-pluging.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.11.v20150529</version>
<configuration>
<scanIntervalSeconds>2</scanIntervalSeconds>
<webApp>
<contextPath>/comercial</contextPath>
</webApp>
</configuration>
</plugin>
</plugins>
</build>
</project>