1、@Configuration
完全替换spring xml文件功能,可自动装配bean,根据@Bean注解创建bean,实例如下
@Configuration
public class App01 {
@Bean
public Person bean1() {
Person p2 = new Person();
p2.setName("001");
return p2;
}
}
2、@PropertySource
加载配置文件属性到spring上下文的 StandardEnvironment对象中,StandardEnvironment对象包括当前操作系统的环境变量和系统变量如果有相同名称的key会自动将旧值覆盖
@PropertySource("classpath:config.properties")
3、@Value
获取Environmonet中的值,该注解在属性上使用
${server.port:80} //表示 获取环境变量中的server.port 的值,如果值为空,就默认80,不设置默认值获取不到该值就会报错
String port;
4、@Repository
标注在类上,官方推荐注解在数据访问层上,标注后,可通过Spring上下文获取该bean,效果如同Component一致
5、@Controller
标注在控制类上,官方推荐注解在控制器handler上,标注后可通过spring上下文获取该bean,通过将该类转换城一个控制器,可通过url访问 返回数据或者对应的页面
6、@Service
标注在类上,官方推荐注解在服务器层上,标注后可通过spring上下文获取该bean
7、@Component
标注在类上,官方推荐如果非以上三种情况,就标注@Component, 如标注Aspect类,这种无法明确规定该类是service还是访问数据层所以就标注@Component
8、@Bean
标注在方法上,让方法返回的对象放入到Spring上下文中,相当于xml配置文件中bean标签功能,可以通过参数的方式传递其他依赖bean。例如:
@Configuration
public class App01 {
@Bean
public Person bean1() {
Person p2 = new Person();
p2.setName("001");
return p2;
}
}
@ConfigurationProperties(prefix = "spring.upload")
public class AttachmentProperties implements SecurityPrerequisite {
private String path ;
private String dateformat ;
// setter
// getter
}
上面配置,会自动在Environment对象中获取spring.upload.path 和 spring.upload.dateformat 值
@SpringBootApplication(scanBasePackages="com.myalice")
@EnableConfigurationProperties(AttachmentProperties.class)
public class App extends SpringBootServletInitializer {}
11、@RequestMapping
@Controller
@RequestMapping("/admin")
public class AdminUserCtrl {
@RequestMapping("/list")
public String list() {
return "redirect:/admin/index.html";
}
}
12、@Configurable
@Async
public String getName() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
System.out.println("返回");
return name;
}
@Async
public Future<String> getNameFuture() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
System.out.println("返回");
return new AsyncResult<String>("HF");
}
15、@ConditionalOnBean
@Configuration
@ConditionalOnBean(SqlSessionFactory.class)
@EnableConfigurationProperties(PageHelperProperties.class)
@AutoConfigureAfter(MybatisAutoConfiguration.class)
public class PageHelperAutoConfiguration implements EnvironmentAware {
//实现不一一列举
}