技术程序员

spring boot 与 轻量级dao的整合

2016-03-06  本文已影响4545人  VI8080


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支持 

上一篇下一篇

猜你喜欢

热点阅读