spring boot 与 轻量级dao的整合


spring boot


摘要:快速搭建web项目,持久层用注解的方式使用原生sql


一:下载spring boot demo

google 到http://start.spring.io/下载spring boot 的demo 

二:运行调试(返回json)

注意事项:(以idea为开发工具)

1.jdk版本demo里为1.8, 若本地为其他版本,需要改idea的java compiler (setting -- java compiler)

2.pom.xml java version改为所用jdk版本号

3.创建业务类(以User为例)如图所示:

4.代码

@Controller

public class UserController {

        @Autowired

        private UserService userService;

         @RequestMapping("/user")

         @ResponseBody

         public String getUser() {

             return "hello world";

        }

}

注:@Controller与@RestController 的区别

@RestController是在@Controller的基础上在方法return前加上@ResqonseBoby的注解,所以@RestController返回json格式,@Controller返回指定文件

5.启动应用

google --localhost:8080/user

正确输出helloworld

三:返回指定文件(默认配置)


1.指定图片或静态文件

resource文件夹下新建static(存放静态文件)路径为:src/main/resource/static如图:


google -- [localhost:8080/lightDao.png](localhost:8080/lightDao.png)

2.模板引擎  Thymeleaf

Thymeleaf为渲染html,xml的模板引擎,能够分离web前后端,不破坏html的内容,只需要定义标签属性即可,浏览器解析html时没有发现属性自动忽略,所以即可单独访问html文件也可以通过后台返回到模板文件

默认路径 src/main/resource/templates

此路径下新建模板文件index.html

<!DOCTYPE html>

<html>

<head lang="en">

<meta charset="utf-8"/>

<title></title>

</head>

<body>

<h1 th:text="${host}">hello world</h1>

</body>

</html>

pom.xml 引入引擎依赖

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

UserController.java

@Controller

public class UserController {

        @Autowired

         private UserService userService;

        @RequestMapping("/index")

        public String index(ModelMap modelMap) {

                 modelMap.addAttribute("host","www.baidu.com");

                 return "index";

        }

}

重启应用  google --localhost:8080/index

正确输出   www.baidu.com


四.与dao持久层的交互(lightDao)

注:@littlersmall(作者)一个轻量级dao处理框架

不同在于pom依赖包

1.github  down代码引入 如图:


2.pom依赖 :


3.业务类:

User.java

@Data

public class User {

       private int id;

       private String user_name;

}

UserContorller.java

@Controller

public class UserController {

       @Autowired

       private UserService userService;

       @RequestMapping("/user")

       @ResponseBody

       public String getUserById() {

                return  userService.getUserById(1).getUser_name();

      }

}

UserService.java

@Service

public class UserService {

     @Autowired

      private UserDao userDao;

      public User getUserById(int id) {

               return userDao.getUserById(id);

      }

}

UserDao.java

@Dao(dbName = "test")

public interface UserDao {

        @Select("select * from user where id = {id}")

         User getUserById(@SqlParam("id")int id);

}


4.application.properties :(spring boot 根据url可以找到class -name )

spring.datasource.url=jdbc:mysql://localhost:3306/test

spring.datasource.username=root

spring.datasource.password=root

5.注入DataSource(lightdao约定)

 第一种方式:bean注入

DemoApplication.java(启动应用程序)

@SpringBootApplication

@ComponentScan("com.example")

public class DemoApplication {

       public static void main(String[] args) {

                SpringApplication.run(DemoApplication.class, args);

                System.out.println("--------启动成功---------");

       }

        @Bean(name = "TestDataSource")

        @Primary

        @ConfigurationProperties(prefix = "spring.datasource")

        public javax.sql.DataSource lightDaoDataSource() {

                return DataSourceBuilder.create().build();

        }

}

第二种注入方式:xml

resource文件夹下新建config.xml (请参考spring mvc配置文档)

config.xml

<bean id="TestDataSource" class="org.apache.tomcat.jdbc.pool.DataSource"

destroy-method="close" lazy-init="false">

      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>

      <property name="url" value="jdbc:mysql://localhost:3306/test"/>

       <property name="username" value="root"/>

        <property name="password" value="root"/>

</bean>

DemoApplication.java(启动应用程序)只需要加一个注解就ok了

@SpringBootApplication

@ComponentScan("com.example")

@ImportResource("classpath:config.xml")

public class DemoApplication {

        public static void main(String[] args) {

                  SpringApplication.run(DemoApplication.class, args);

                  System.out.println("--------启动成功---------");

       }

}

到此项目完成---w  a   n    完



注意事项  :

1.DemoApplication.java(启动应用程序)  默认package应于user业务类并列,否则扫描不到注解

若自定义package的话  加上注解@ComponentScan("com.example")

2.datasource  bean  name 应为  数据库名称+DataSource 否则找不到数据库 @littlersmall

3.jdbc依赖  

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

spring jdbc  自动获取对tomcat-jdbc的依赖

若引入spring mvc的jdbc依赖   会报异常

4.spring boot 对jsp有限制  参考spring boot jsp支持 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,112评论 6 342
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,131评论 18 399
  • https://www.ibm.com/developerworks/cn/opensource/os-cn-sp...
    大同若鱼阅读 10,446评论 4 18
  • 折腾了一个晚上。早上睁开眼,一缕阳光从窗帘的缝隙里溜进来。啊,我还活着。 都是大姨妈惹的祸。从小大姨妈就特别善待我...
    爱在董监高阅读 2,571评论 0 0