SpringBoot快速入门
一、需求:请求一个url,响应一个json数据
1、传统方法:创建maven工程》配置springmvc框架、springmvc配置文件、web.xml配置前端控制器》编写controller》部署tomact
2、springBoot创建maven工程;必须继承spring-boot-stater-parent工程》》编写controller实现业务逻辑》》编写一个启动类,添加main方法;main方法上添加注解@SpringBootApplication》》启动main方法
3、springBoot功能梳理:springBoot必须是maven工程、、工程必须继承spring-boot-stater-parent工程、、编写Controller 和启动类、、@SpringBootApplication包含@ComponentScan注解 包扫描器、、、启动类必须在所有类方法包的上一层包中(在顶层可以随意指挥下面的所有类)
一、工程继承和依赖都在pom.xml文件中书写 继承 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> </parent> 添加依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--添加起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> </dependencies>
二、编写代码 1、编写controller package cn.zrf.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @RestController public class HelloController { @RequestMapping("/hello") public Map HelloController(){ Map map = new HashMap<>(); map.put("张三","你好"); return map; } } 2、编写启动器在controller的上级包上书写 package cn.zrf; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HelloApplication { public static void main(String[] args) { SpringApplication.run(HelloApplication.class,args); } }
二、连接数据库操作;需求:查询数据库中信息并显示在页面上
1、分析:创建数据库》添加一个表user》使用持久层框架springDataJpa》json、jsp、静态HTML、freemarker静态模板
2、持久层:添加起步依赖》》创建一个配置文件:必须以application.properties命名、(springboot配置文件就这一个) 配置数据信息》》编写实体类、dao》》编写controller
3、页面展示:
a、动态展示:jsp本质上就是servlet;servlet运行在一个servlet容器中;必须是web工程》》需要把工程改变成web工程,打包方式为war包》》需要springBoot中嵌入tomact;比较繁琐一般不用
b、模板技术:freemarker模板常用;velocity已过时不常用;tymeleaf模板
4、模板的使用方法:添加起步依赖》》创建模板文件:位置resource/templates目录下并且文件名必须是ftl》》编写controller吧查询的数据传递给模板
5、静态资源的访问方式:static和templates文件夹下书写静态资源:例、css;js;imges等
一、编写唯一配置文件连接数据库 #DB Configuration: spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=169695 #JPA Configuration: #spring.jpa.database=MySQL #spring.jpa.show-sql=true #spring.jpa.generate-ddl=true 二、编写实体类;用springdatajpa操作 package cn.zrf.entity; import javax.persistence.*; @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Integer id; @Column(name = "username") private String username; @Column(name = "sex") private String sex; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", sex='" + sex + '\'' + '}'; } } 三、编写dao继承JpaRepository public interface UserDao extends JpaRepository<User,Integer> { } 四、编写controller @RestController public class ShowUserController { @Autowired UserDao userDao; @RequestMapping("user") public List<User> showList(){ return userDao.findAll(); } } 五、编写后缀为ftl的静态页面 <html> <head> <title>SpringBoot</title> </head> <body> <table border="1"> <thead> <tr> <th>ID</th> <th>姓名</th> <th>性别</th> </tr> </thead> <tbody> <#--list循环--> <#list userList as user> <tr> <th>${user.id}</th> <th>${user.username}</th> <th>${user.sex}</th> </tr> </#list> </tbody> </table> <img src="/imges/312495.jpg"> </body> </html> 六、启动器同上