建设银行个人登录网站,营销型网站模板展示,如何制作wordpress模板下载地址,微信做一个小程序需要多少钱SpringBoot的具体介绍可以参看其他网上介绍#xff0c;这里就不多说了#xff0c;就这几天的学习#xff0c;个人理解#xff0c;简而言之#xff1a;如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring#xff0c;MyBatis#xff0c;Netty源码分析的朋友…SpringBoot的具体介绍可以参看其他网上介绍这里就不多说了就这几天的学习个人理解简而言之如果想学习Java工程化、高性能及分布式、深入浅出。微服务、SpringMyBatisNetty源码分析的朋友可以加我的Java高级交流854630135群里有阿里大牛直播讲解技术以及Java大型互联网技术的视频免费分享给大家。1它是Spring的升级版Spring容器能做到的事情它都能做到而且更简便从配置形式上来说SpringBoot完全抛弃了繁琐的XML文件配置方式而是替代性地用注解方式来实现虽然本质来说是差不多的类似包扫描注解扫描类加载之类。2SpringBoot集成的插件更多从而使用很多服务都只是引入一个依赖几个注解和Java类就可以用了具体的参考相关手册。3在Web应用开发这一块之前的应用一般来说是打包成war包再发布到相关服务器容器下例如Tomcat虽然SpringBoot也可以这么做但在SpringBoot下更常见的形式是将SpringBoot应用打包成可执行jar包文件。之所以这么做源于你可以直接将SpringBoot应用看成是一个Java Application其Web应用可以没有webapp目录更不用说web.xml了它推荐使用html页面并将其作为静态资源使用。下面具体记录一下如何在IDEA下从零开始一步步搭建SpringBoot Web应用这里采用的是maven作依赖管理新手起步有任何疑问请参考SpringBoot官网。需要说明的是SpringBoot依赖的JDK版本为1.8及以上。1File-new,选择maven创建一个空项目直接next.2填写工程名3next到底成果创建一个基于maven的空Java项目其目录结构是这样的如果想学习Java工程化、高性能及分布式、深入浅出。微服务、SpringMyBatisNetty源码分析的朋友可以加我的Java高级交流854630135群里有阿里大牛直播讲解技术以及Java大型互联网技术的视频免费分享给大家。4在pom文件中引入SpringBoot相关依赖parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version1.5.1.RELEASE/version /parent dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency /dependencies5新建一个controller 包用于存放所有的controller这里跟官方的一样使用SampleController为第一个测试用例。代码如下/** * Created by Song on 2017/2/15. * 官方示例工程中的测试代码 */ Controller EnableAutoConfiguration public class SampleController { RequestMapping(/) ResponseBody String home() { return Hello World!; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } }注意到这里有一个main函数再联想到前面说的SpringBoot应用一般是打包成可执行jar包来发布的这个main函数就是整个项目的入口。而之所以能这么做是因为SpringBoot连Tomcat8作为一个插件都集成进去了所以就不必跟之前的SSM架构下一样还需要去在Tomcat下配置war包才能运行。直接点击运行该main函数再浏览器链接栏输入地址http://localhost:8080/就可以看到打印的字符串”Hello World!”了。这就是官网提供的一个最基本的基于SpringBoot的Web应用如此便捷。当然一个基本的Web应用结构肯定不会这么简单。下面要说的是如何在上面的基础上搭建一个具有MVC结构的完整的Web应用其中数据库采用的是MysqlORM采用的是Spring Data JPA前端页面采用jshtml5。当然还有其他的方式例如ORM框架采用mybatis等本文暂未涉及。6在resource目录下新建一个application.properties文件或yml文件,命名与位置为SpringBoot默认的配置文件。在该文件中记录着所有的模块配置内容。例如Tomcat的端口默认8080以及编码方式等server.port8080 server.tomcat.uri-encodingutf-87引入本项目中所需要的相关依赖(MySQL连接驱动 以及Spring Data JPA,thymeleaf模板引擎)!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version5.1.39/version /dependency !-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-thymeleaf/artifactId version1.4.0.RELEASE/version /dependency !-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-jpa/artifactId version1.5.1.RELEASE/version /dependency8在application.properties中配置MySQL数据库连接信息这里的数据库为本地数据库test,用户名和密码改成自己的#MySQL spring.datasource.driver-class-namecom.mysql.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:3306/test?characterEncodingutf8 spring.datasource.username**** spring.datasource.password****9在application.properties中配置Spring Data JPA这一段的意思就是说数据库类型为MYSQL日志信息打印具体执行的sql语句表更新策略以及Java类到数据库表字段的映射规则等具体查看网络资料。#Spring Data JPA spring.jpa.databaseMYSQL spring.jpa.show-sqltrue spring.jpa.hibernate.ddl-autoupdate # Naming strategy spring.jpa.hibernate.naming-strategy org.hibernate.cfg.ImprovedNamingStrategy # stripped before adding them to the entity manager) spring.jpa.properties.hibernate.dialect org.hibernate.dialect.MySQL5Dialect 10编写一个实体类UserTable标签指定数据库中对应的表名id配置为主键生成策略为自动生成/** * Created by Song on 2017/2/15. * Model 用户 */ Entity Table(name tbl_user) public class User { Id GeneratedValue(strategy GenerationType.IDENTITY) private long id; private String name; private String password; }11基于JPA实现DAO层即数据库数据的增删改查操作新建UserRepositoty.java接口文件源代码如下/** * Created by Song on 2017/2/15. * User表操作接口 */ Repository public interface UserRepositoty extends JpaRepositoryUser,Long{ Query(select t from User t where t.name :name) User findByUserName(Param(name) String name); }需要解释的是Spring Data JPA提供了很多持久层接口例如Repository,CrudRepositoty,PagingAndSortingRepository 以及JpaRepository 接口。其中Repository为基类JpaRepository继承自PagingAndSortingRepository接口两个泛型参数分别代表Java POJO类以及主键数据类型。我们创建自己的数据库操作接口时只需继承上述JPA提供的某个接口即可自动继承相关数据操作方法而不需要再次实现。例如CrudRepositoty提供了对增删改查操作的实现PagingAndSortingRepository提供了分页查询方法的实现。另外JPA提供了一套命名规则例如readBy**()等这些方法也只需要用户申明而由JPA自动实现了。如果这仍不能满足业务需求也可以自定义SQL查询语句例如上述代码所示采用Query标签 其中 *语法为引用下面用Param标识的变量需要注意的是其中User不是表面而是Java POJO类名。具体使用参考JPA使用手册。12设计Service层业务代码新建UserService类其源代码如下/** * Created by Song on 2017/2/15. * User业务逻辑 */ Service public class UserService { Autowired private UserRepositoty userRepositoty; public User findUserByName(String name){ User user ; try{ user userRepositoty.findByUserName(name); }catch (Exception e){} return user; } }13设计Controller层新建UserController.java提供两个接口/user/index 返回页面/user/show返回数据。其源代码如下/** * Created by Song on 2017/2/15. * User控制层 */ Controller RequestMapping(value /user) public class UserController { Autowired private UserService userService; RequestMapping(value /index) public String index(){ return user/index; } RequestMapping(value /show) ResponseBody public String show(RequestParam(value name)String name){ User user userService.findUserByName(name); if( ! user) return user.getId()/user.getName()/user.getPassword(); else return null; } }如果想学习Java工程化、高性能及分布式、深入浅出。微服务、SpringMyBatisNetty源码分析的朋友可以加我的Java高级交流854630135群里有阿里大牛直播讲解技术以及Java大型互联网技术的视频免费分享给大家。14在application.properties文件中配置页面引擎。这里采用SpringMVCSpringBoot还提供thymeleaffreemaker等。这里需要配置其静态资源js、css文件、图片文件等路径以及html页面文件路径参考SpringMVC在Spring下的配置。#视图层控制spring.mvc.view.prefixclasspath:/templates/ spring.mvc.view.suffix.html spring.mvc.static-path-pattern/static/** 15在resource目录下新建templates以及static目录分别用于存放html文件以及js、css文件、图片)文件。在13中返回了一个“user/index”页面所以在templates下新建user目录在user目录下新建index.html页面这里就不写什么了默认页面通过相对路径引入js文件js文件里只做示意弹出一个alert()。user/index.html !DOCTYPE html html langen head meta charsetUTF-8/ script src../static/scripts/jquery.min.js/script script src../static/scripts/test.js/script titleTitle/title /head h1TEST PAGE/h1 body /body /htmlstatic/scripts/test.js $(document).ready(function (){ alert(OK TEST); });16配置JPA新建一个configuration包用于存放项目配置类。类似SSM架构下spring需要配置Java POJO类包路径以及DAO层接口路径以自动扫描相关注解这里同样需要配置这两项不同的是Spring采取的是xml配置方式这里用Java代码注解方式配置。新建一个JpaConfiguration.java类其代码如下/** * Created by Song on 2017/2/15. * JPA 配置类 */ Order(Ordered.HIGHEST_PRECEDENCE) Configuration EnableTransactionManagement(proxyTargetClass true) EnableJpaRepositories(basePackages com.song.repository) EntityScan(basePackages com.song.entity) public class JpaConfiguration { Bean PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor(){ return new PersistenceExceptionTranslationPostProcessor(); } }17配置项目启动入口到这一步就可以删掉5中官方示例给出的SampleController.java了由于我们的工程结构已经发生了改变我们需要告诉SpringBoot框架去扫描哪些包从而加载对应类所以这里重新编写main函数。新建一个Entry.java类其代码如下其中SpringBootApplication是一个复合注解就理解为自动配置吧/** * Created by Song on 2017/2/15. * 项目启动入口配置包根路径 */ SpringBootApplication ComponentScan(basePackages com.song) public class Entry { public static void main(String[] args) throws Exception { SpringApplication.run(Entry.class, args); } }18运行main函数访问http://localhost:8080/user/index 会显示测试页面并弹出alert(),访问http://localhost:8080/user/show?name**(数据表里存在的数据)会显示user信息。最终的工程文件结构如下欢迎工作一到八年的Java工程师朋友们加入Java高级交流854630135本群提供免费的学习指导 架构资料 以及免费的解答不懂得问题都可以在本群提出来 之后还会有直播平台和讲师直接交流噢