Spring注解
- @Controller:控制层(MVC层),DispatcherServlet会扫描此注解类,将web请求映射到此类中注解了@RequestMapping的方法上
- @Service:业务逻辑层(service层)
- @Repository:数据访问层(dao层)
- @Component:把普通的类实例化到spring容器中,相当于配置文件中的 < bean id="" class=""/>。泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Repository、@Services等的时候),我们就可以使用@Component来标注这个类,不建议使用。
以上四种在在 applicationContext.xml 文件中加一行 < context:component-scan base-package=“包路径”/> 将自动扫描路径下面的包,注解,将自动注册到Spring容器:
- @Autowired 自动注入(根据Type去set)
- @Resource 自动注入
- @Inject 自动注入
- @Configuration 声明一个配置类(相当于一个Spring配置的xml文件中的< bean>)
- @Bean 注解在方法上,生命当前方法返回值为一个Bean,默认作用域为单例singleton作用域
- @Aspect 声明一个切面
- @After 后置建言,在原方法前执行
- @Before 后置建言,在原方法后执行
- @Around 环绕建言,原方法前后都执行
- @PointCut 声明切点(定义拦截规则)
- @Transactional 声明事务
- @Cacheable 声明数据缓存
- @PostConstruct 该方法在构造函数执行完成之后执行
- @PreDestroy 该方法在对象销毁前执行
- @RequestMapping 用来映射web请求
- @ResponseBody 将返回值放在response体内。返回的是数据而不是页面
- @RequestBody 允许request的参数在request体中,而不是在直接链接在地址的后面。此注解放置在参数前
- @PathVariable 放置在参数前,用来接收路径参数
- @ModelAttribute 将键值对添加到全局
- @SessionAttribute 将键值添加到session
Spring boot注解
- @SpringBootApplication:申明让spring boot自动给程序进行必要的配置
- @ResponseBody:返回json数据
- @RestController:@ResponseBody和@Controller的合集。
- @RequestMapping:路径映射
- @EnableAutoConfiguration:自动配置,EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。
- @ComponentScan:表示该类自动发现扫描组件
- @Service:一般用于修饰service层的组件
- @Repository:这个注解修饰的类会被扫描并配置
- @ConfigurationProperties:和 @value 有着相同的功能
application.properties
--------------------------------------------
spring.datasource.url=jdbc:mysql://127.0.0.1:8888/test?useUnicode=false&autoReconnect=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.list[0]=00000
spring.datasource.list[1]=11111
----------------------------------------------
DatasourcePro
----------------------------------------------
@ConfigurationProperties(prefix = "spring.datasource")
@Data
public class DatasourcePro {
private String url;
private String username;
private String password;
// 配置文件中是driver-class-name, 转驼峰命名便可以绑定成
private String driverClassName;
private String type;
//如果有集合也可以直接用集合,字段名和属性名相同
// private List<String> list= new ArrayList<>();
}
-----------------------------------------------------
使用
-----------------------------------------------------
@Controller
@RequestMapping(value = "/config")
public class ConfigurationPropertiesController {
@Autowired
private DatasourcePro datasourcePro;
@RequestMapping("/test")
@ResponseBody
public Map<String, Object> test(){
Map<String, Object> map = new HashMap<>();
map.put("url", datasourcePro.getUrl());
map.put("userName", datasourcePro.getUsername());
map.put("password", datasourcePro.getPassword());
map.put("className", datasourcePro.getDriverClassName());
map.put("type", datasourcePro.getType());
return map;
}
}
- …