springboot的特色
①建立独立的spring应用
②嵌入Tomcat,无需部署war文件
③简化Maven配置
④自动配置Spring
⑤没有xml的配置java
开发环境要求
①Maven 3以上
②Spring FrameWork 4以上
③Jdk1.7以上 boot2在1.8以上
④springboot 1.5以上mysql
<!-- springboot的父级项目依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.RELEASE</version> </parent> <!-- springboot的web依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <!-- 只在test测试里面运行 --> <scope>test</scope> </dependency>
@SpringBootApplication public class Application { //启动springboot应用 public static void main(String[] args) { //参数1:springboot入口类对象、参数2:main函数的参数 SpringApplication.run(Application.class,args); } }
@SpringBootApplication
修饰范围:只能用在入口类上 惟一
做用:
①.表明当前应用是一个springboot构建的应用
②.表明这个类是springboot的入口应用程序员
server: port: 9090 context-path: /springboot
入口类上注解,是如下三个注解的组合web
@SpringBootApplication //自动配置spring相关内容 @EnableAutoConfiguration //第三方jar与springboot自动配置 @ComponentScan //手动指定包扫描,默认扫描入口类当前包及其包下子包
注意:
@SpringBootConfiguration继承自@Configuration,两者功能也一致,标注当前类是配置类,
并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例归入到spring容器中,而且实例名就是方法名。spring
其余注解:
spring4中sql
@RestController //基于restful风格控制器 //使用在controller类上,至关于@Controller + @ResponseBody //做用:将类中全部方法的返回值以json格式响应
在resources包下,建立banner.txt,并在其中书写内容,个人示例以下:数据库
______ _____ ______ __ __ __ / ____/ ____ / ___/ ____ __ __ _____ _____ / ____/ ____ / / / / / / / / __ / __ \ \__ \ / __ \ / / / / / ___/ / ___/ / / __ / __ \ / / / / / / / /_/ / / /_/ / ___/ / / /_/ // /_/ / / / (__ ) / /_/ / / /_/ / /_/ /_/ /_/ \____/ \____/ /____/ / .___/ \__,_/ /_/ /____/ \____/ \____/ (_) (_) (_) /_/
springboot中默认的视图解析器是:thymeleaf(view层框架)
springboot集成jsp:apache
<!--jstl--> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--引入springboot 对jsp页面的支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
spring: mvc: view: #试图解析器 prefix: / suffix: .jsp http: encoding: charset: utf-8 #中文乱码问题 force: true
<plugins> <!--springboot 支持jsp启动插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>
spring.profiles.active:xxx #激活哪一个文件生效(写文件-后边单词便可)
json
<!--引入springboot和mybatis整合jar--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!--引入mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!--druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency>
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource #指定数据源 driver-class-name: com.mysql.jdbc.Driver #指定驱动 url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8 #指定url username: root password: root
②mapper配置文件的位置 和 实体起别名tomcat
mybatis: mapper-locations: classpath:com/abc/mapper/*Mapper.xml #指定mapper配置文件位置 type-aliases-package: com.abc.entity #指定起别名的包
@SpringBootApplication @MapperScan("com.abc.dao") public class Application { }
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <!-- 只在test测试里面运行 --> <scope>test</scope> </dependency>
//在当前类实例化启动springboot应用 //当测试类与入口类不平级时,需手动指定入口类;要求junit4.12 @SpringBootTest(classes = Application.class) @RunWith(SpringRunner.class) public class TestUser { @Autowired private UserDAO userDAO; @Test public void test1(){ User user = userDAO.selectByPrimaryKey("1"); System.err.println(user); } }
ps:解决注入dao红色下划线问题!
在DAO接口加以下注解:
@Mapper @Component(value = "userDAO") public interface UserDAO {
@Mapper
@Component:定义Spring管理Bean,经过@Component将切面定义为Spring管理Bean,像@Service、@Controller、@Repository都是其扩展
<!--springboot 支持jsp启动插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.7.RELEASE</version> </dependency> </dependencies> </plugin>
server: jsp-servlet: init-parameters: development: true #开启jsp的热部署配置
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.49</version> </dependency>
//FastJson配置 @Bean //@Bean 将配置的东西做为bean对象,交给工厂处理 public HttpMessageConverters fastjsonHttpMessageConverter(){ //定义一个转换消息的对象 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); //添加fastjson的配置信息 好比 :是否要格式化返回的json数据 FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); //在转换器中添加配置信息 fastConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter<?> converter = fastConverter; return new HttpMessageConverters(converter); }