首先給出pom.xml 其中包括了必須的jpa依賴 log4j2依賴 mysql 和 jdbc 等等java
<?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"> <modelVersion>4.0.0</modelVersion> <groupId>com.avicsafety</groupId> <artifactId>webapp</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- Inherit defaults from Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <!-- Add typical dependencies for a web application --> <dependencies> <!-- spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- spring boot devtools --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <!-- log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!-- jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- jdbc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- slf4j - log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j2</artifactId> </exclusion> </exclusions> </dependency> <!-- alibaba --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.18</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec</classifier> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
建立實體類mysql
package com.avicsafety.webapp.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue private Long id; @Column(nullable = false) private String name; @Column(nullable = false) private Integer age; }
數據訪問層web
package com.avicsafety.webapp.dao; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import com.avicsafety.webapp.model.User; public interface UserRepository extends JpaRepository<User, Long> { User findByName(String name); User findByNameAndAge(String name, Integer age); @Query("from User u where u.name=:name") User findUser(@Param("name") String name); }
邏輯層的接口和實現spring
package com.avicsafety.webapp.service; import com.avicsafety.webapp.model.User; public interface IUserService { public void AddUser(User user); }
package com.avicsafety.webapp.service.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.avicsafety.webapp.dao.UserRepository; import com.avicsafety.webapp.model.User; import com.avicsafety.webapp.service.IUserService; @Service public class UserServiceImpl implements IUserService { private static final Log logger = LogFactory.getLog(UserServiceImpl.class); @Autowired UserRepository dao; @Override public void AddUser(User user) { // TODO Auto-generated method stub dao.save(user); logger.info("add user"); } }
控制層 sql
package com.avicsafety.webapp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.avicsafety.webapp.model.User; import com.avicsafety.webapp.service.IUserService; @RestController @EnableAutoConfiguration @SpringBootApplication public class MyApplication { @Autowired private IUserService userService; @RequestMapping("/") String home() { User user = new User(); user.setName("shili"); user.setAge(11); userService.AddUser(user); return "ok"; } public static void main(String[] args) throws Exception { SpringApplication.run(MyApplication.class, args); } }
application.properties 配置apache
spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://127.0.0.1/mydb?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull spring.datasource.username = root spring.datasource.password = ##### spring.jpa.database = MYSQL spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect spring.jpa.show-sql = true spring.jpa.hibernate.ddl-auto = update spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl logging.config=classpath:log4j2.xml spring.devtools.restart.enabled = true
log4j2.xml 配置tomcat
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="DEBUG"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </Console> </Appenders> <Loggers> <Logger name="org.apache.catalina.util.LifecycleBase" level="error" /> <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="error" /> <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="error" /> <Logger name="org.hibernate.validator.internal.util.Version" level="error" /> <Logger name="org.springframework" level="error" /> <Root level="debug"> <AppenderRef ref="Console" /> </Root> </Loggers> </Configuration>