赞
踩
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-aop</artifactId>
- </dependency>
- public class CommunityApplication {
- public static void main(String[] args) {
- SpringApplication.run(CommunityApplication.class, args);
- }
在这个方法的的底层不仅会启动Tomcat还会自动帮我们创建Spring容器,容器被创建之后会自动扫描配置类所在的包以及子包中的bean并装配到容器中
定义Bean: 有四个注解可以将类定义为可以被扫描到的Bean,分别是@Component、@Controller、@Service、@Repository
4. 获取Bean:
按类型获取,当一种类只有一个Bean时可以使用按类型获取
- AlphaService alphaService = applicationContext.getBean(AlphaService.class);
- System.out.println(alphaService);
这是我创建了一个名为AlphaService的类,并用@Service注解定义其为Bean放入到Spring中。因为这个类型只有这一个Bean,所以可以用(类名.class)从Spring容器中获取到这个Bean
同一类型下有多个Bean时若要获取某一个Bean还可以用注解@Primary指定
按名称获取,当这个类中的Bean不止一个时,若要指定获取哪一个Bean就要按名称来获取这里我定义了一个名为alphaHibernate的Bean
- @Repository("alphaHibernate")
- public class AlphaDaoHibernateImpl implements AlphaDao{
- @Override
- public String select() {
- return "Hibernate";
- }
这是按名称获取指定Bean
AlphaDao alphaDao1= (AlphaDao) applicationContext.getBean("alphaHibernate");
使用@Configuration定义此类为配置类然后用@Bean写在一个方法上,方法名就是Bean的名字
- @Test
- public void testBeanManagement(){
- AlphaService alphaService = applicationContext.getBean(AlphaService.class);
- System.out.println(alphaService);
- System.out.println(alphaService.se());
- AlphaService alphaService1 = applicationContext.getBean(AlphaService.class);
- System.out.println(alphaService);
- System.out.println(alphaService1.se());
- }
init,要用注解@PostConstruct声明此方法为初始化方法,初始化方法在构造方法之后调用
destroy,要用注解@PreDestroy声明此方法为销毁方法,销毁方法在销毁之前调用
不用再去获取Bean实例化,可以直接将Bean注入到定义的对象中 代码示例:
@Autowired @Qualifier(指定名称)依赖于@Autowired,不能单独使用
- @Autowired
- private AlphaService alphaService;
- @Autowired
- private SimpleDateFormat simpleDateFormat;
- @Autowired
- @Qualifier("alphaHibernate")
- private AlphaDao alphaDao;
- @Test
- public void testDI(){
- System.out.println(alphaService.se());
- System.out.println(alphaDao);
- System.out.println(simpleDateFormat);
- }
由controll处理浏览器的请求,请求过程中会调用业务层(service)组件,业务组件会调用dao访问数据库,他们的关系可以用依赖注入的方式实现
@RequestMapping("路径") @ResponseBody 指定类型
总结: 今天是牛客网社区项目的第一天,主要是学习基础知识,并没有进行实际的开发。但万丈高楼平地起,基础还是要先打牢的。虽然之前学习过今天的知识,但今天学习下来觉得还是眼前一亮。因为,书读百遍其义自见。
坚持就是胜利,加油。明天将进行Springmvc的学习
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。