Spring入门

3 篇文章 0 订阅
2 篇文章 0 订阅

1.spring简介
   开源的,轻量级的为企业开发应用带来春天。解决了javaee开发项目时各层耦合性高的方案。
   目的:简化开发,提高应用维性,解耦合
         
   2. 重要的概念
        控制反转:IOC  
            应用不负责对象的创建,而把创建对象的控制权转交spring容器,该过程中控制权的转让称之为控制反转
        依赖注入:DI
            为了更加具体的描述控制反转,提出了依赖注入的概念 
        面向切面:
             回顾面向对象:引用.成员   
            切入点、方法执行前,执行后等节点   
            
   //UserServiceImpl 耦合    userDaoImpl()    
   

     public class UserServiceImpl implements UserService{
            
            private UserDao userDao=new userDaoImpl() ;
            
            public boolean login(String userName, String password) {    
                return this.userDao.login(userName, password);
            }
        }
    //解耦合:spring userDao由外部注入(运行期间)
       public class UserServiceImpl implements UserService{
            
            private UserDao userDao ;
            
            public boolean login(String userName, String password) {    
                return this.userDao.login(userName, password);
            }
        }


3.第一个spring程序        
   1)引入jar包
      使用maven 在pom.xml中导包
        spring-context 
        spring-beans
        spring-test
        spring-core
        junit
        
        在远程仓库中查找https://mvnrepository.com/ 不同版本的jar
   2)创建在src/main/java下创建 配置文件appConfig.xml  
       构造器注入:
      

 public class UserServiceImpl implements UserService{
            private UserDao userDao;
            
            public boolean login(String userName, String password) {
                System.out.println("----------UserServiceImpl----------");
                return this.userDao.login(userName, password);
            }
            //含参的构造方法
            public UserServiceImpl(UserDao userDao) {
                super();
                this.userDao = userDao;
            }
        }
        


        
         <!-- 依赖注入:实现类 -->
          <bean name="uDao" class="com.neuedu.dao.UserDaoImpl"></bean>
          <bean name="uService" class="com.neuedu.service.UserServiceImpl">
              <constructor-arg name="userDao" ref="uDao"></constructor-arg>
          </bean>
     3)测试类
     public class Test {

  

          public static void main(String[] args) {
                //加载配置文件
                ClassPathXmlApplicationContext ctx=new ClassPathXmlApplicationContext("appConfig.xml");
                //在配置文件中查找bean  
                UserService us=(UserService)ctx.getBean("uService");
                us.login("张三", "1234");                
               //查找DAO bean
                UserDao dao=(UserDao)ctx.getBean("uDao");
                dao.login("aaa", "123");
            }

        }


    问题:
        Could not resolve matching constructor     service中没有构造器
        
4.使用配置类方式注入
        //注册成配置类
        

@Configuration
        public class AppConfig {
             @Bean(name="uDao")
             public UserDao getUserDao(){
                 return new UserDaoImpl();
             }
             @Bean("uService")
             public UserService getUserService(UserDao dao){
                 return new UserServiceImpl(dao);
             }     
        }


        
        //测试类
      

  public class Test {
            public static void main(String[] args) {
                ApplicationContext app=    new AnnotationConfigApplicationContext(AppConfig.class);//注意不要写成字符串
                System.out.println(app);
                UserDao dao=(UserDao)app.getBean("uDao");
                dao.login("ccc", "132232");
                  
                UserService us= (UserService)app.getBean("uService");
                us.login("ddd", "");
            }
        }


5.junit使用
  版本:在spring5.0+中需要用junit4.12
  1)创建
  右键 other--junit-->junit case
  在类中可以创建多个测试用例,每一个测试用例的方法上使用@Test注解
      public class testJunit {
        //测试用例
   

     @Test
        public void tt(){
            System.out.println("Dfdfdfdfd");
        }
        @Test
        public void dd(){
            System.out.println("cvvcvcvcvv");
        }
    }


   2)运行
      左侧项目管理器中,右键某个方法 runas--junit 即可测试
   3)测试spring配置类中的bean
     右键 other--junit-->junit suite
      
    

  @RunWith(SpringJUnit4ClassRunner.class)
        @ContextConfiguration(classes=AppConfig.class)//加载配置文件
        //@ContextConfiguration(locations={"AppConfig.xml"}) 加载配置文件
        public class AllTests {//该类可测试AppConfig类中注入的bean的方法
            @Autowired
            private UserService uService;
            
            @Test
            public void tt(){
                uService.login("ss", "");
            }

        }     


      

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值