SpringBoot第1天Springboot的配置⽂件和模版thymeleaf Spring Config
1.说明
Java配置⽅式就是使⽤Java类来替代Spring原先的xml⽂件
2.实现⽅式
主要依赖于@Confuration和@Bean注解实现
@Confuration:使⽤在类上,说明该类是⼀个配置类相当于⼀个xml⽂件
@Bean:使⽤在⽅法上,作⽤是返回对象将对象保存在IOC容器中相当于XML⽂件中的bean标签
3.Config
@Configuration
@PropertySource(value="classpath:db.properties")
public class SpringConfig {
@Bean
public UserService userService(){
return new UserServiceImpl();
}
@Value("${mysql.username}")
private String username;
@Value("${password}")
private String password;
@Bean
public String username() {
return username;
}
@Bean
public String password() {
return password;
}
}
4.⼊⼝类
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
UserService userService = Bean(UserService.class);
System.out.println(userService);
String username = (String) Bean("mysql.username");
String password = (String) Bean("mysql.password");
System.out.println(username);
System.out.println(password);
Springboot介绍
⾸先声明,Spring Boot不是⼀门新技术,所以不⽤紧张。从本质上来说,Spring
Boot就是Spring,它做了那些没有它你也会去做的Spring
Bean配置。它使⽤“习惯优于配置”(项⽬中存在⼤量的配置,此外还内置了⼀个习惯性
的配置,让你⽆需⼿动进⾏配置)的理念让你的项⽬快速运⾏起来。使⽤Spring
Boot很容易创建⼀个独⽴运⾏(运⾏jar,内嵌Servlet容器)、准⽣产级别的基于Spring
框架的项⽬,使⽤Spring Boot你可以不⽤或者只需要很少的Spring配置。
p/2017/04/24/springboot0/
SpringBoot
2.1 SpringBoot的好处
1.快速构建项⽬
2.对主流开发框架的⽆配置集成
3.项⽬可独⽴运⾏,⽆需外部依赖Servlet容器,springboot中内嵌⼀个tomcat
4.提⾼开发效率,部署效率
5.与云计算的天然集成
例如:
其实就是简单、快速、⽅便!平时如果我们需要搭建⼀个spring web项⽬的时候需要怎么做呢?
1)配置l,加载spring和spring mvc
2)配置数据库连接、配置spring事务
3)配置加载配置⽂件的读取,开启注解
4)配置⽇志⽂件
...
配置完成之后部署tomcat 调试
...
现在⾮常流⾏微服务,如果我这个项⽬仅仅只是需要发送⼀个邮件,如果我的项⽬仅仅是⽣产⼀个积分;我都需要这样折腾⼀遍!但是如果使⽤spring boot呢?
很简单,我仅仅只需要⾮常少的⼏个配置就可以迅速⽅便的搭建起来⼀套web项⽬或者是构建⼀个微服务!
第⼀个SpringBoot :HelloWorld
1. ⽹页介绍
start.spring.io/
2. l解析(⽗级依赖)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
3.应⽤⼊⼝类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class Chapter1Application {
@RequestMapping("/")
public String index(){
return "Hello Spring Boot";
}
public static void main(String[] args) {
SpringApplication.run(Chapter1Application.class, args);
}
}
4.解决报错问题
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>      <version>5.3.0.Final</version>
</dependency>
SpringBoot原理
Banner
如果我们想改动,那么只需要在src/main/recesources下新建⼀个⽂件
实际上Spring Boot在这个位置,放了⼀个彩蛋,我们是可以⾃定义这个图标的。
我们可以在resource⽬录下⾯放⼊⼀个⽂件,
Spring Boot启动项⽬的时候就会优先启动这个⽂件中的内容。
patorjk/software/taag/#p=display&f=Graffiti&t=Type%20Something%20
SpringBoot配置⽂件(application.properties)
p/2017/02/28/springbootconfig/
mybatis
#指定bean所在包
#指定映射⽂件
mybatis.mapperLocations=classpath:mapper/*.xml
spring.datasource.url=jdbc:mysql://localhost:3306/work1?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.sql.jdbc.Driver
mybatis注解
# crud
# 名称不⼀致
@Select("select * from book where id = #{id}")
@Results({
@Result(property="id",column="id",id=true),
@Result(property="name",column="b_name"),
@Result(property="createTime",column="b_create_time"),
@Result(property="price",column="price")
})
public Book findById(int id);
# ⼀对⼀
@Select("select * from chapter")
@Results({
@Result(property = "id", column = "id",id=true),
@Result(property = "name", column = "name"),
@Result(property = "bookId", column = "book_id"),
@Result(property = "book",column="book_id",one = @One(fetchType=FetchType.EAGER,select="com.zhiyou100.mapper.BookMapper.findById")) })
public List<Chapter> findAll();
# ⼀对多
@Select("select * from book")
//解决数据库和java属性不⼀致
//property:java属性
//column:数据库属性
springboot框架的作用
//id:判断是否是主键
@Results({
@Result(property="id",column="id",id=true),
@Result(property="name",column="b_name"),
@Result(property="createTime",column="b_create_time"),
@Result(property="price",column="price"),
@Result(property="chapters",column="id",many=@Many(fetchType=FetchType.EAGER,select="com.zhiyou100.mapper.ChapterMapper.findByBookId"))
})
public List<Book> findAll();
# 多对多
@Select("select * from user")
@Results({
@Result(property="id",column="id",id=true),
@Result(property="roles",column="id",many=@Many(fetchType=FetchType.EAGER,select="com.zhiyou100.mapper.RoleMapper.findByUserId"))  })
public List<User> findUserAndRole();
@Select("SELECT * from role r INNER JOIN  user_role ur ON r.id = ur.role_id where ur.user_id = #{userId}")
public List<Role> findByUserId(int userId);
SpringBoot模版(templates:thymeleaf)
1. Jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2. 配置⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。